Sequence order and  index scan

1)If i miss the sequence while importing tables how can i restore the correct sequence value for that particular column of that table.
2) I created 2 indexes for a table the table is big around 3 gb.The indexes also around 1.3 and 1 gb each.when i am trying to use select count(*) from table_name it takes long time to get the result.If i am using witout indexes it is giving fast result than previous.Why this is happening.If i drop the indexes whehter it will give more performance.This is oracle 7.3.4 on soalris 7.How can i avoid the index scan any hints to use full tablescan
with regards
ramya

FULL hint:
SQL> set autotrace traceonly explain
SQL> select * from emp e where empno = 12 ;
Execution Plan
   0      SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=1 Bytes=41)
   1    0   FILTER
   2    1     TABLE ACCESS (BY INDEX ROWID) OF 'EMP' (Cost=2 Card=1 Bytes=41)
   3    2       INDEX (UNIQUE SCAN) OF 'PK_EMP' (UNIQUE)
SQL> select /*+ FULL(e) */ * from emp e where empno = 12 ;
Execution Plan
   0      SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=1 Bytes=41)
   1    0   FILTER
   2    1     TABLE ACCESS (FULL) OF 'EMP' (Cost=2 Card=1 Bytes=41)
SQL> disconnect
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.3.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.3.0 - Production
SQL>

Similar Messages

  • Sequence column and index

    Hi
    I have a column and its values are populated by a sequence. will that column work as an index? or do I need to create an explicit index? Please explain..
    Edited by: Adi_consultant on Sep 25, 2008 11:04 PM

    Hi,
    Adi_consultant wrote:
    So I need to create an index on a sequence based column, is it correct?Short, colloquial answer:
    Yes.
    Sesquipedalian, pedantic answer:
    Idexes are optional (except to enfore UNIQUE constraints). You don't need to create one.
    If you want to have an index, it has to be created, either
    (a) implicity (by adding a UNIQUE or PRIMARY KEY constraint), or
    (b) explicitly (CREATE INDEX ...).
    If, according to your business rules, the column values are unique, then I strongly encourage (a).

  • I ordered the IX500 Scan Snap through Amazon and received the incorrect XI Standard disc in Windows format instead of for my Mac.  I contacted Amazon and they suggested I contact Scan Snap who suggests I contact Adobe for the correct disc.  Please help.

    I ordered the IX500 Scan Snap through Amazon and received the incorrect Adobe Acrobat XI Standard disc in Windows format instead of for my Mac.  I contacted Amazon and they suggested I contact Scan Snap who suggests I contact Adobe for the correct disc.  Please help.

    Fujitsu delivers only Adobe Acrobat for Windows, not Mac.
    http://www.fujitsu.com/global/services/computing/peripheral/scanners/product/ix500/

  • How to avoid this full table scan (and index FFS) ?

    Hi All,
    Oracle 11.2 on Linux.
    See this query and its plan below
    SQL> DELETE
      2  FROM  TABLEA APE
      3        WHERE   NOT EXISTS
      4                   (SELECT   1
      5                      FROM   TABLEB AP
      6                     WHERE       AP.col1 = APE.col1
      7                             AND AP.col2 = APE.col2
      8                             AND AP.col3 = APE.col3)
      9  AND ROWNUM < 51 ;
    50 rows deleted.
    Elapsed: 00:12:01.07
    Execution Plan
    Plan hash value: 1740911877
    | Id  | Operation               | Name                  | Rows  | Bytes |TempSpc| Cost (%CPU)| Time  |
    |   0 | DELETE STATEMENT        |                       |    50 |  2650 |       |   573K  (1)| 01:54:40 |
    |   1 |  DELETE                 | TABLEA                |       |       |       |            |       |
    |*  2 |   COUNT STOPKEY         |                       |       |       |       |            |       |
    |*  3 |    HASH JOIN RIGHT ANTI |                       |    80M|  4059M|  1775M|   573K  (1)| 01:54:40 |
    |   4 |     INDEX FAST FULL SCAN| TABLEB_UK             |    47M|  1228M|       | 96480   (1)| 00:19:18 |
    |   5 |     TABLE ACCESS FULL   | TABLEA                |    80M|  1991M|       |   243K  (1)| 00:48:42 |
    ---------------------------------------------------------------------------------------------------------In both tables, TABLEA and TABLEB, there is index on columns col1-col2-col3 as leading columns (TABLEB has few more columns in the index, but after these 3 columns).
    Requirement is, I want to delete first 50 records in TABLEA, which does not exist in TABLEB.
    I tried with various hints, but Oracle is always doing a full scan on one of the tables and index FFS on other. In some cases, Oracle did full scan on both tables and then deleted 50 records. Stats is up-to-date. Doing a full scan on tables with 80 million and 47 million rows is a bit too much for deleting 50 rows.
    How I can make Oracle do
    1) Read TABLEA row-by-row
    2) for each row, check if it exists in TABLEB
    3) If not exists, then delete row from TABLEA, else continue
    4) Stop reading TABLEA after we have deleted 50 records
    Thanks in advance

    >
    >
    Oracle 11.2 on Linux.
    SQL> DELETE
    2  FROM  TABLEA APE
    3        WHERE   NOT EXISTS
    4                   (SELECT   1
    5                      FROM   TABLEB AP
    6                     WHERE       AP.col1 = APE.col1
    7                             AND AP.col2 = APE.col2
    8                             AND AP.col3 = APE.col3)
    9  AND ROWNUM < 51 ;
    50 rows deleted.
    Elapsed: 00:12:01.07
    Execution Plan
    Plan hash value: 1740911877
    | Id  | Operation               | Name                  | Rows  | Bytes |TempSpc| Cost (%CPU)| Time  |
    |   0 | DELETE STATEMENT        |                       |    50 |  2650 |       |   573K  (1)| 01:54:40 |
    |   1 |  DELETE                 | TABLEA                |       |       |       |            |       |
    |*  2 |   COUNT STOPKEY         |                       |       |       |       |            |       |
    |*  3 |    HASH JOIN RIGHT ANTI |                       |    80M|  4059M|  1775M|   573K  (1)| 01:54:40 |
    |   4 |     INDEX FAST FULL SCAN| TABLEB_UK             |    47M|  1228M|       | 96480   (1)| 00:19:18 |
    |   5 |     TABLE ACCESS FULL   | TABLEA                |    80M|  1991M|       |   243K  (1)| 00:48:42 |
    ---------------------------------------------------------------------------------------------------------Requirement is, I want to delete first 50 records in TABLEA, which does not exist in TABLEB.
    Such requirements usually make me curious - what's special about a randomly selected 50 rows ?
    Is this trying to delete the data in batches of 50 rows at a time.
    How I can make Oracle do
    1) Read TABLEA row-by-row
    2) for each row, check if it exists in TABLEB
    3) If not exists, then delete row from TABLEA, else continue
    4) Stop reading TABLEA after we have deleted 50 records
    It look's as if a 'no_unnest' hint in the subquery should do what you want. It should make Oracle run the quey with a FILTER subquery. You could then choose to drive the delete through a tablescan of tableA or an index range scan of the index on tableA. Have you considered the effect of (and requirements relating to) nulls in the three columns of either table ?
    Regards
    Jonathan Lewis
    http://jonathanlewis.wordpress.com
    Author: <b><em>Oracle Core</em></b>

  • How to pick Cobol Sequence and Index files in XI

    Hi,
    Has anyone worked with the scenario to pick Cobol Sequence and Index files in XI?

    Hi,
    The Cobol sequence means are you talking about the GDG sequence, then You could use the Masking concept but if you are expecting to pick up the fiels in same sequence then its not possible.
    For that you need to design a program that will add the another file when the first file will be processed with XI (You need to delete or archive the fiel after processing)
    Thanks
    swarup

  • Scanning and indexing option not appear in Oracle Document capture

    Hi
    I installed Oracle document capture 10.1.3.5.1.
    when i opened this document capture scanning and indexing option are not presented.
    i am using windows 64 bit operating system.
    please find screenshot for the same
    [http://oraclebpm.com/webcenter/scanning_indexing.png]

    Thank you Ryan for your reply. The problem was resolved.
    First I downloaded document capture s/w from oracle.com site,I am not getting the option when I download s/w from this site.
    Later i downloaded it from https://edelivery.oracle.com/ site. Now I am getting the options now.
    -vishnu

  • Sequencing of Purchase order and Good Issue acc. to Production order date

    Hello ,
    We are using Direct procurement scenario ,During MRP run we generate a Plan order(which have dates); which converted into Production order later.For these production order material is needed (components). And for procuring components we need to create purchase order.
    Assumption :- Each component have same Procurement lead time
    Our requirement is Purchase order and GI in Production order should be done sequentially, means Based on Production order date ,FIFO based Purchase orders are created and GI done in Production order. Production order with earlier production date have purchase orders earlier and we do GI in production order accordingly.
    Kindly suggest

    Hello Dario
    Thanks for your reply. Our requirement is to put a check on system that GI for production order should be done FIFO wise
    means as MRP generate 3 production order of same material each at different date , we want issance of components to be done on FIFO wise in production order
    Regards
    Rajeev

  • Values in "vendor batch" in the Goods-in-order and Goods-in-plan lists are

    Vendor batch No.  : Transaction ZJPMPU322
    (Background)     
    There are "vendor batch" and "batch" fields in Goods-in-order and Goods-in-plan lists (transaction ZJPMPU322). Values for these fields are retrieved from inbound delivery document (transaction VL33N). After core 7.0 upgrade, "vendor batch" is not copied from "batch" in inbound delivery document any more so that nothing appears in the vendor batch field in the lists.
    (Change request)
    Values in "vendor batch" in the Goods-in-order and Goods-in-plan lists are retrieved from "batch" in inbound delivery document ONLY IF "vendor batch" is blank in the inbound delivery document.
    (Current design)
    Batch is retrieved from LIPS-CHARG
    Vendor batch is retrieved from LIPS-LICHN
    (If there is no record in LIPS, blank will be printed out for both fields)
    (After change)
    Batch is retrieved from LIPS-CHARG
    Vendor batch is retrieved from LIPS-LICHN only if LIPS-LICHN is not blank.
    If LIPS-LICHN is blank, vendor batch is retrieved from LIPS-CHARG.
    (If there is no record in LIPS, blank will be printed out for both fields. If both LIPS-CHARG and LIPS-LICHN are blank, blank will be printed out for both fields),
    Following is the program:
    REPORT zjpmrpu322  MESSAGE-ID  zjpm001
                  NO STANDARD PAGE HEADING
                            LINE-COUNT  50
                            LINE-SIZE  255.
    *&   Development ID: PU_DD_322_LJP                                     *
    *&   Report        : ZJPMRPU322                                        *
    *&   The Purpose of this program is to print the  Goods-in-order list  *
    *&   and the Goods in plan list for raw materials, materials purchase  *
    *&   etc at the Sasayama plant, Japan.                                 *
    *&   Change Log:                                                       *
    *&   Init    Who              Date        Text                         *
    *&   PV      P V R S Varma    07-May-2003  Initial Version             *
    *&   DU      D.Usui           2004/02/26   CR No. 1432                 *
    *&   DU      D.Usui           2004/03/08   CR No. 1447                 *
    *&   DU      D.Usui           2004/05/06   CR No. 1591                 *
                            Constants
    CONSTANTS:
    c_werks   LIKE ekpo-werks VALUE 'JP01',    "Plant code - Sasayama plant
    c_id      LIKE thead-tdid VALUE 'F02',     "Text ID for Info record
    c_object  LIKE thead-tdobject VALUE 'EKPO',"Object of text for info rec
    *c_zzjp_r1 LIKE marc-zzjp_re1 VALUE 'GMP',  "Goods in plan- Domestic
    *c_zzjp_r2 LIKE marc-zzjp_re1 VALUE 'GMPI', "Import sales order document
    c_plus    TYPE c VALUE '',                "Holding '' sign
    c_spras   LIKE makt-spras VALUE 'J',       "Language key Japan
    *c_device(7)    type c value 'PRINTER',    "Device type
    c_form(16)     TYPE c VALUE 'ZJPMPU305',  "Form name
    c_ele_gmp(4)   TYPE c VALUE 'GMP',        "GMP Text element
    c_ele_gmpi(4)  TYPE c VALUE 'GMPI',       "GMPI Text element
    add begin CR1432
    c_ele_bgmp(4)  TYPE c VALUE 'BGMP',       "BGMP
    c_ele_bgmpi(5) TYPE c VALUE 'BGMPI',      "BGMPI
    add end CR1432
    c_function(3)  TYPE c VALUE 'SET',        "Function
    c_type(4)      TYPE c VALUE 'BODY',       "Window area in main window
    c_win_head(7)  TYPE c VALUE 'HEADING',    "Heading window
    c_win_shead(7) TYPE c VALUE 'SUBHEAD',    "sub heading window
    c_win_fot1(7)  TYPE c VALUE 'FOOTER1',    "Footer 1 window
    c_win_main(4)  TYPE c VALUE 'MAIN',       "Main window
    c_comd(8)      TYPE c VALUE 'NEW-PAGE',   "New-page command
    c_zar TYPE ekko-bsart VALUE 'ZAR',
    c_x            TYPE c VALUE 'X',          "Indicator for print options
    c_f            TYPE c VALUE 'F',          "Indicator for Purchase Order
    add begin CR1591
    Deletion indicator in purchasing document
    c_loekz(1)     TYPE c VALUE 'L',
    For ranges tables
    c_sign_i(1)    TYPE c VALUE 'I',          "Sign(include)
    c_op_eq(2)     TYPE c VALUE 'EQ',         "Option(=)
    Confirmation category
    c_ebtyp_ab(2)  TYPE c VALUE 'AB',         "Order acknowledgment
    add end CR1591
    c_la(2)        TYPE c VALUE 'LA'.         "Indicator for Inbound deliver
                          Database Tables
                        Vaiables / Internal tables                       *
    Internal table to store PO information
    Not used after CR1591
    DATA: BEGIN OF t_purc OCCURS 0,
             ebeln LIKE eket-ebeln, "Purchasing Document Number
             ebelp LIKE eket-ebelp, "Item Number of Purchasing Document
             eindt LIKE eket-eindt, "Item delivery date
             menge LIKE eket-menge, "Scheduled quantity
             charg LIKE eket-charg, "Batch number
             matnr LIKE ekpo-matnr, "Material code
             werks LIKE ekpo-werks, "Plant
             meins LIKE ekpo-meins, "Unit of measure
             lifnr LIKE ekko-lifnr, "Vendor number
          END OF t_purc.
    Internal table to store material description.
    DATA: BEGIN OF t_makt OCCURS 0,
            matnr LIKE makt-matnr,  "Material code
            maktx LIKE makt-maktx,  "Material description
          END OF t_makt.
    Internal table for storage of final EKET data
    DATA: BEGIN OF t_eket OCCURS 0,
             ebeln LIKE eket-ebeln, "Purchasing Document Number
             ebelp LIKE eket-ebelp, "Item Number of Purchasing Document
             ebelp_ex(6) TYPE n,    "Extended ebelp with length 6
             eindt LIKE eket-eindt, "Item delivery date
             menge LIKE eket-menge, "Scheduled quantity
             dabmg LIKE ekes-dabmg, " Delivered Quantity
             charg LIKE eket-charg, "Batch number
             matnr LIKE ekpo-matnr, "Material code
             werks LIKE ekpo-werks, "Plant
             maktx LIKE makt-maktx, "Material Description-- jp check
             etens LIKE ekes-etens, "Sequence Number
             meins LIKE ekpo-meins, "Unit of measure
             lifnr LIKE ekko-lifnr, "Vendor number
             vbeln LIKE ekes-vbeln,
             vbelp LIKE ekes-vbelp,
             vpnam(40) TYPE c,      "Vendor product name
          END OF t_eket.
    Internal table for extraction of data from EKES
    Not used after CR1591
    DATA: BEGIN OF t_ekes OCCURS 0,
             ebeln LIKE ekes-ebeln, "Purchasing Document Number
             ebelp LIKE ekes-ebelp, "Item Number of Purchasing Document
             etens LIKE ekes-etens, "Sequence No
             eindt LIKE ekes-eindt, "Item delivery date
             menge LIKE ekes-menge, "Scheduled Quantity
             dabmg LIKE ekes-dabmg, " delivered quantity
             vbeln LIKE ekes-vbeln,
             vbelp LIKE ekes-vbelp,
             mark TYPE c,
          END OF t_ekes.
    Internal table for extraction of data from EKES
    Not used after CR1591
    DATA: BEGIN OF t_ekes_temp OCCURS 0,
             ebeln LIKE ekes-ebeln, "Purchasing Document Number
             ebelp LIKE ekes-ebelp, "Item Number of Purchasing Document
             etens LIKE ekes-etens, "Sequence No
             eindt LIKE ekes-eindt, "Item delivery date
             menge LIKE ekes-menge, "Scheduled Quantity
          END OF t_ekes_temp.
    Internal table for storing data from MLGN table.
    DATA: BEGIN OF t_mlgn OCCURS 0,
             matnr LIKE mlgn-matnr, "material code
             lhmg1 LIKE mlgn-lhmg1, "Standard pallet size
             lhme1 LIKE mlgn-lhme1, "Unit of measure
             lety1 LIKE mlgn-lety1, "tower
             ltkze LIKE mlgn-ltkze, "Storage location
          END OF t_mlgn.
    Internal table for storing data from MARM table.
    DATA: BEGIN OF t_marm OCCURS 0,
             matnr LIKE marm-matnr, "material code
             umrez LIKE marc-zzjp_cas_size, "Std package unit
             meins LIKE ekpo-meins, "alternate unit
          END OF t_marm.
    Internal table for storing data from MARC table.
    DATA: BEGIN OF t_marc OCCURS 0,
             matnr LIKE marc-matnr,               "Material code
             zzjp_nyu_sop LIKE marc-zzjp_nyu_sop, "Product Std number
             zzjp_dos_frm LIKE marc-zzjp_dos_frm, "Dosage form
             zzjp_aprn     LIKE marc-zzjp_aprn,   "Apperance
             zzjp_re1     LIKE marc-zzjp_re1,     "Heading
          END OF t_marc.
    Internal table for storing data from lfa1 table.
    DATA: BEGIN OF t_lfa1 OCCURS 0,
             lifnr LIKE lfa1-lifnr, "Vendor code
             name1 LIKE lfa1-name1, "Vendor name
          END OF t_lfa1.
    Internal table for Storing data from LIPS table.
    DATA: BEGIN OF t_lips OCCURS 0,
             vbeln LIKE lips-vbeln, "Delivery document no
             posnr LIKE lips-posnr, "Item number for Delivery document
             charg LIKE lips-charg, "Batch number
             lichn LIKE lips-lichn, "Vendor Batch number
          END OF t_lips.
    Internal table for storing the final display data.
    DATA: BEGIN OF t_display OCCURS 0,
            g_checkbox  type  c,       "check box for selection of records
             ebeln LIKE ekes-ebeln,      "Purchasing Document Number
             ebelp LIKE ekes-ebelp,      "Item Number of Purchasing Document
             etens LIKE ekes-etens,      "Sequence No
             eindt LIKE eket-eindt,      "Item delivery date
             menge LIKE eket-menge,      "Scheduled Quantity
             vpnam(40) TYPE c,          "Vendor product name
             lifnr LIKE ekko-lifnr,      "Vendor code
             name1 LIKE lfa1-name1,      "Vendor name
             meins LIKE ekpo-meins,      "Unit of measure
             matnr LIKE ekpo-matnr,      "Material Number
             maktx LIKE makt-maktx,     "Material Description-- jp check
             charg LIKE lips-charg,      "Batch number
             lichn LIKE lips-lichn,      "Vendor Batch number
             lhmg1 LIKE mlgn-lhmg1,     "standard pallet size
             lhme1 LIKE mlgn-lhme1,      "Unit of standard pallet
             lety1 LIKE mlgn-lety1,     "tower
             ltkze LIKE mlgn-ltkze,      "Storage location
             umrez LIKE marc-zzjp_cas_size,      "Std package unit
             meinh LIKE ekpo-meins,      "alternate unit
             zzjp_nyu_sop LIKE marc-zzjp_nyu_sop,      "Product Std number
             zzjp_dos_frm LIKE marc-zzjp_dos_frm,      "Dosage form
             zzjp_aprn     LIKE marc-zzjp_aprn,          "Apperance
             zzjp_re1     LIKE marc-zzjp_re1,           "Heading
             std_pac_no(13) TYPE n,            "Std receipt package no
             tot_std_pt(13) TYPE n,             "Total no of std pallets
    add begin CR1447
    Add new field 'Goods-in-order','Item' for goods in plan list
             vbeln like ekes-vbeln,     "Goods-in-order
             vbelp like ekes-vbelp,     "Item
    add end CR1447
          END OF t_display.
    Internal table for storing the final display data -Goods in order list
    DATA: BEGIN OF t_display1 OCCURS 0,
             ebeln LIKE ekes-ebeln,      "Purchasing Document Number
             ebelp LIKE ekes-ebelp,      "Item Number of Purchasing Document
             etens LIKE ekes-etens,      "Sequence No
             eindt LIKE eket-eindt,      "Item delivery date
             menge LIKE eket-menge,      "Scheduled Quantity
             vpnam(40) TYPE c,          "Vendor product name
             lifnr LIKE ekko-lifnr,      "Vendor code
             name1 LIKE lfa1-name1,      "Vendor name
             meins LIKE ekpo-meins,      "Unit of measure
             matnr LIKE ekpo-matnr,      "Material Number
             maktx LIKE makt-maktx,     "Material Description-- jp check
             charg LIKE lips-charg,      "Batch number
             lichn LIKE lips-lichn,      "Vendor Batch number
             lhmg1 LIKE mlgn-lhmg1,     "standard pallet size
             lhme1 LIKE mlgn-lhme1,      "Unit of standard pallet
             lety1 LIKE mlgn-lety1,     "tower
             ltkze LIKE mlgn-ltkze,      "Storage location
             umrez LIKE marc-zzjp_cas_size,      "Std package unit
             meinh LIKE ekpo-meins,      "alternate unit
             zzjp_nyu_sop LIKE marc-zzjp_nyu_sop,      "Product Std number
             zzjp_dos_frm LIKE marc-zzjp_dos_frm,      "Dosage form
             zzjp_aprn     LIKE marc-zzjp_aprn,          "Apperance
             zzjp_re1     LIKE marc-zzjp_re1,           "Heading
             std_pac_no(13) TYPE n,            "Std receipt package no
             tot_std_pt(13) TYPE n,             "Total no of std pallets
          END OF t_display1.
    Internal table for storing the final display data - Goods in plan list
    DATA: BEGIN OF t_display2 OCCURS 0,
             ebeln LIKE ekes-ebeln,      "Purchasing Document Number
             ebelp LIKE ekes-ebelp,      "Item Number of Purchasing Document
             etens LIKE ekes-etens,      "Sequence No
             eindt LIKE eket-eindt,      "Item delivery date
             menge LIKE eket-menge,      "Scheduled Quantity
             name1 LIKE lfa1-name1,      "Vendor name
             meins LIKE ekpo-meins,      "Unit of measure
             matnr LIKE ekpo-matnr,      "Material Number
             maktx LIKE makt-maktx,     "Material Description-- jp check
             charg LIKE lips-charg,      "Batch number
             lichn LIKE lips-lichn,      "Vendor Batch number
             lhmg1 LIKE mlgn-lhmg1,     "standard pallet size
             lety1 LIKE mlgn-lety1,     "tower
             ltkze LIKE mlgn-ltkze,      "Storage location
             tot_std_pt(13) TYPE n,             "Total no of std pallets
    add begin CR1447
    Add new field 'Goods-in-order','Item' for goods in plan list
             vbeln like ekes-vbeln,     "Goods-in-order
             vbelp like ekes-vbelp,     "Item
    add end CR1447
          END OF t_display2.
    add begin CR1591
    RANGES: r_matnr FOR mara-matnr,   "for p_matnr
            r_ebeln FOR ekpo-ebeln.   "for p_ebeln
    add end CR1591
    DATA: line TYPE i.            " line number
    DATA: g_checkbox  TYPE  c.       "check box for selection of records
    DATA: g_tab LIKE sy-index.    "variable to hold index
    DATA  g_tabix LIKE sy-tabix.  "holder for table index
    Printing Options.
    DATA: lw_pr_options LIKE itcpo.
    *lw_pr_options-tddest = 'SA03'.      " Print Device Name
    lw_pr_options-tdpreview = 'X'.      " Print Preview
    lw_pr_options-tdnewid = 'X'.        " New Request
    lw_pr_options-tdlifetime = 2.       " Retention in Spool
                            Selection Screen                             *
    SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME.
    SELECT-OPTIONS:
      s_date  FOR sy-datum DEFAULT sy-datum. " Search period.
    PARAMETERS:
      p_matnr LIKE mara-matnr,               " Material code
      p_ebeln LIKE ekpo-ebeln.               " Purchase Document No
    SELECTION-SCREEN END OF BLOCK blk1.
                       Selection Screen Checks                           *
    AT SELECTION-SCREEN.
      IF ( s_date-low IS INITIAL ) AND
         ( p_matnr IS INITIAL ) AND
         ( p_ebeln IS INITIAL ).
        MESSAGE e000 WITH 'Entry Must in atleast one of the Fields'(t00).
      ENDIF.
      IF ( NOT p_matnr IS INITIAL ) AND
         ( s_date IS INITIAL )      AND
         ( p_ebeln IS INITIAL ).
        MESSAGE e000 WITH 'Date should also be Entered'(t01).
      ENDIF.
    del begin CR1591
    This check is not found in original FS
    IF ( NOT p_matnr IS INITIAL ) AND
        ( s_date IS INITIAL ) AND
        ( NOT p_ebeln IS INITIAL ).
       MESSAGE e000 WITH 'Date should also be Entered'(t01).
    ENDIF.
    del end CR1591
                   Validations for Data selection                        *
    del begin CR1591
    Waste check
    IF ( NOT s_date IS INITIAL ) AND
        ( p_matnr IS INITIAL ) AND
        ( p_ebeln IS INITIAL ).
       PERFORM f_check_date_in_eket.
    ENDIF.
    IF ( NOT s_date IS INITIAL ) AND
        ( NOT p_matnr IS INITIAL ) AND
        ( p_ebeln IS INITIAL ).
       PERFORM f_check_matnr_in_plant.
       PERFORM f_check_matnr_in_ekpo.
       PERFORM f_check_date_in_eket.
       PERFORM f_check_matnr_in_plant.
       PERFORM f_check_matnr_in_ekpo.
    ENDIF.
    IF ( NOT s_date IS INITIAL ) AND
        ( NOT p_matnr IS INITIAL ) AND
        ( NOT p_ebeln IS INITIAL ).
       PERFORM f_check_matnr_in_plant.
       PERFORM f_check_matnr_in_ekpo.
       PERFORM f_check_date_in_eket.
       PERFORM f_check_ebeln_in_ekpo.
       PERFORM f_check_werks_in_ekpo.
    ENDIF.
    IF ( NOT p_ebeln IS INITIAL ) AND
        ( NOT s_date IS INITIAL ) AND
        ( p_matnr IS INITIAL ).
       PERFORM f_check_date_in_eket.
       PERFORM f_check_ebeln_in_ekpo.
       PERFORM f_check_werks_in_ekpo.
    ENDIF.
    IF ( NOT p_ebeln IS INITIAL ) AND
        ( s_date IS INITIAL ) AND
        ( p_matnr IS INITIAL ).
       PERFORM f_check_ebeln_in_ekpo.
       PERFORM f_check_werks_in_ekpo.
    ENDIF.
    del end CR1591
                         Data selection from Tables                      *
    START-OF-SELECTION.
      SET PF-STATUS 'SELECT'.
    add begin CR1591
    Set ranges tables
      PERFORM set_ranges.
    add end CR1591
    mod begin CR1591
    **Selection of PO data from EKET into internal table t_purc.
    PERFORM f_select_eket.
    **Selection of corresponding PO data for EKET from EKES into t_ekes.
    PERFORM f_select_ekes.
    **Selection of material desc from MAKT table into T_makt.
    PERFORM f_select_makt.
    **Copy the contents of t_purc and t_makt into t_eket table.
    PERFORM f_move_eket.
    **Replace the corresponding entries of t_eket with t_ekes.
    PERFORM f_update_eket.
    Selection of PO data from EKET into internal table T_EKET.
      PERFORM f_select_eket2.
    Selection of corresponding PO data from EKES appending to T_EKET.
      PERFORM f_select_ekes2.
    Selection of material desc from MAKT table into T_MAKT.
      PERFORM f_select_makt2.
    mod end CR1591
    *Selection of vendor product name.
      PERFORM f_select_vpnam.
    del begin CR1591
    No need
    **copy t_eket-ebelp into temporary variable.
    PERFORM f_copy_ebelp.
    del end CR1591
    *selection of data from MLGN table into t_mlgn internal table
      PERFORM f_select_mlgn.
    *selection of data from marm table into t_marm internal table
      PERFORM f_select_marm.
    *selection of data from marc table into t_marc internal table
      PERFORM f_select_marc.
    *selection of data from lfa1 table into t_lfa1 internal table
      PERFORM f_select_lfa1.
    *Selection of data from LIPS table into t_lips internal table
      PERFORM f_select_lips.
    del begin CR1591
    Don't display list screen when no data exists
    *END-OF-SELECTION.
    del end CR1591
    *lines = sy-linno - 1.
    *Collection of data into the final display internal table t_Display
      PERFORM f_collect_final.
    *Display the contents of t_display as a simple List
      PERFORM f_list_display.
    AT USER-COMMAND.
      PERFORM f_select_layout.
      INCLUDE zjpmipu315.
      INCLUDE zjpmipu316.
    *&      Form  f_check_MATNR_in_plant
         This Routine is to check if the the selected material code is
         available in the plant 'JP01'.
    FORM f_check_matnr_in_plant.
      DATA: l_matnr LIKE mara-matnr.
      SELECT matnr UP TO 1 ROWS FROM marc
                       INTO l_matnr
                       WHERE
                       matnr = p_matnr AND
                       werks = c_werks.
      ENDSELECT.
      IF l_matnr IS INITIAL.
        MESSAGE e000 WITH
        'The material is not available in '(t02)  c_werks 'plant'(t20).
      ENDIF.
    ENDFORM.                    " f_check_MATNR_in_plant
    *&      Form  f_check_EBELN_in_EKPO
          This Routine is to check if the Purchase order number selected
          is existing or not and if it exists, check if it is related to
          the plant 'JP01'.
    FORM f_check_ebeln_in_ekpo.
      DATA: l_ebeln LIKE ekpo-ebeln.
      SELECT ebeln UP TO 1 ROWS FROM ekpo
                    INTO l_ebeln
                    WHERE
                    ebeln = p_ebeln AND
                    werks = c_werks.
      ENDSELECT.
      IF l_ebeln IS INITIAL.
        MESSAGE e000 WITH
        'PO not available or not related to '(t03) c_werks 'plant'(t21).
      ENDIF.
    ENDFORM.                    " f_check_EBELN_in_EKPO
    *&      Form  f_check_matnr_in_ekko
          This routine is to check if any PO exist for the selected
          Material code.
    FORM f_check_matnr_in_ekpo.
      DATA: l_matnr LIKE ekpo-matnr.
      SELECT matnr UP TO 1 ROWS FROM ekpo
                       INTO l_matnr
                       WHERE
                       matnr = p_matnr.
      ENDSELECT.
      IF l_matnr IS INITIAL.
        MESSAGE e000 WITH
        'PO does not exist for the material no'(t04) p_matnr.
      ENDIF.
    ENDFORM.                    " f_check_matnr_in_ekpo
    *&      Form  f_check_date_in_eket
          This routine is to check if any purchase order exists
          with the selected
    FORM f_check_date_in_eket.
      DATA: l_eindt LIKE eket-eindt.
      SELECT eindt UP TO 1 ROWS FROM eket
                       INTO l_eindt
                       WHERE
                       eindt IN s_date.
      ENDSELECT.
      IF l_eindt IS INITIAL.
        MESSAGE e000 WITH
       'No PO exist with the selected delivery date '(t05).
      ENDIF.
    ENDFORM.                    " f_check_date_in_eket
    *&      Form  f_check_werks_in_ekpo
          This Routine is to check if the selected purchase order
          is associated with the plant JP01
    FORM f_check_werks_in_ekpo.
      DATA: l_ebeln LIKE ekpo-ebeln.
      SELECT ebeln UP TO 1 ROWS FROM ekpo
                       INTO l_ebeln
                       WHERE
                       werks = c_werks.
      ENDSELECT.
      IF l_ebeln IS INITIAL.
        MESSAGE e000 WITH
        'The selected P0 is not relevant to '(t06) c_werks 'plant'(t22).
      ENDIF.
    ENDFORM.                    " f_check_werks_in_ekpo
    *&      Form  f_select_eket
          Routine to collect data from EKET, EKPO, MAKT, EKKO tables
          using inner join and store the data into internal table
          t_PURC. The data selection is based on the selection screen's
          input.
    FORM f_select_eket.
      IF ( NOT s_date-low IS INITIAL ) AND
         ( p_matnr IS INITIAL ) AND
         ( p_ebeln IS INITIAL ).
        SELECT
                eket~ebeln
                eket~ebelp
                eket~eindt
                eket~menge
                eket~charg
                ekpo~matnr
                ekpo~werks
                ekpo~meins
                ekko~lifnr
         INTO TABLE t_purc
        FROM
                 (  ( eket  INNER JOIN  ekko  ON
                  eketebeln = ekkoebeln )   INNER JOIN  ekpo  ON
                  eketebelp = ekpoebelp  AND
                  ekpoebeln = ekkoebeln )
      WHERE
                eket~eindt IN s_date AND
                ekpo~werks = c_werks AND
                ekpo~elikz NE c_x AND
                ekko~bstyp EQ c_f AND
                ekko~bsart NE c_zar.
      ELSEIF ( NOT s_date-low IS INITIAL ) AND
         ( NOT p_matnr IS INITIAL ) AND
         ( p_ebeln IS INITIAL ).
        SELECT
                eket~ebeln
                eket~ebelp
                eket~eindt
                eket~menge
                eket~charg
                ekpo~matnr
                ekpo~werks
                ekpo~meins
                ekko~lifnr
         INTO TABLE t_purc
        FROM
                 (  ( eket  INNER JOIN  ekko  ON
                  eketebeln = ekkoebeln )   INNER JOIN  ekpo  ON
                  eketebelp = ekpoebelp  AND
                  ekpoebeln = ekkoebeln )
      WHERE
                eket~eindt IN s_date AND
                ekpo~matnr = p_matnr AND
                ekpo~werks = c_werks AND
                ekpo~elikz NE c_x AND
                ekko~bstyp EQ c_f AND
                ekko~bsart NE c_zar.
      ELSEIF ( NOT s_date-low IS INITIAL ) AND
         ( NOT p_matnr IS INITIAL ) AND
         ( NOT p_ebeln IS INITIAL ).
        SELECT
                eket~ebeln
                eket~ebelp
                eket~eindt
                eket~menge
                eket~charg
                ekpo~matnr
                ekpo~werks
                ekpo~meins
                ekko~lifnr
         INTO TABLE t_purc
        FROM
                 (  ( eket  INNER JOIN  ekko  ON
                  eketebeln = ekkoebeln )   INNER JOIN  ekpo  ON
                  eketebelp = ekpoebelp  AND
                  ekpoebeln = ekkoebeln )
      WHERE
                eket~eindt IN s_date AND
                ekpo~matnr = p_matnr AND
                ekpo~ebeln = p_ebeln AND
                ekpo~werks = c_werks AND
                ekpo~elikz NE c_x AND
                ekko~bstyp EQ c_f AND
                ekko~bsart NE c_zar.
      ELSEIF ( s_date-low IS INITIAL ) AND
         ( p_matnr IS INITIAL ) AND
         ( NOT p_ebeln IS INITIAL ).
        SELECT
                eket~ebeln
                eket~ebelp
                eket~eindt
                eket~menge
                eket~charg
                ekpo~matnr
                ekpo~werks
                ekpo~meins
                ekko~lifnr
         INTO TABLE t_purc
        FROM
                 (  ( eket  INNER JOIN  ekko  ON
                  eketebeln = ekkoebeln )   INNER JOIN  ekpo  ON
                  eketebelp = ekpoebelp  AND
                  ekpoebeln = ekkoebeln )
      WHERE
                ekpo~ebeln = p_ebeln AND
                ekpo~werks = c_werks AND
                ekpo~elikz NE c_x AND
                ekko~bstyp EQ c_f AND
                ekko~bsart NE c_zar.
      ELSEIF ( NOT s_date-low IS INITIAL ) AND
         ( p_matnr IS INITIAL ) AND
         ( NOT p_ebeln IS INITIAL ).
        SELECT
                eket~ebeln
                eket~ebelp
                eket~eindt
                eket~menge
                eket~charg
                ekpo~matnr
                ekpo~werks
                ekpo~meins
                ekko~lifnr
         INTO TABLE t_purc
        FROM
                 (  ( eket  INNER JOIN  ekko  ON
                  eketebeln = ekkoebeln )   INNER JOIN  ekpo  ON
                  eketebelp = ekpoebelp  AND
                  ekpoebeln = ekkoebeln )
      WHERE
                eket~eindt IN s_date AND
                ekpo~ebeln = p_ebeln AND
                ekpo~werks = c_werks AND
                ekpo~elikz NE c_x AND
                ekko~bstyp EQ c_f AND
                ekko~bsart NE c_zar.
      ENDIF.
    IF sy-subrc <> 0.
       MESSAGE s000 WITH 'Data not found'(t07).
       LEAVE LIST-PROCESSING.
    ELSE.
      SORT t_purc.
    ENDIF.
    ENDFORM.                    " f_select_eket
    *&      Form  f_select_makt
          Routine to select the material description for all the
          materials present in T_purc table
    FORM f_select_makt.
      DATA: l_t_makt(4) TYPE c VALUE 'MAKT'.
      SELECT
          matnr
          maktx
      FROM
          makt
      INTO TABLE t_makt
          FOR ALL ENTRIES IN t_purc
      WHERE
         matnr = t_purc-matnr AND
         spras = c_spras.
      IF sy-subrc <> 0.
        MESSAGE s000 WITH
          'Relevant data not found in'(t09) l_t_makt 'table'(t23).
      ELSE.
        SORT t_makt.
      ENDIF.
    ENDFORM.                    " f_select_makt
    *&      Form  f_move_eket
          Routine to join data in T_PURC and T_MAKT tables into
          internal table T_MAKT.
    FORM f_move_eket.
      LOOP AT t_purc.
        t_eket-ebeln = t_purc-ebeln.
        t_eket-ebelp = t_purc-ebelp.
        t_eket-eindt = t_purc-eindt.
        t_eket-menge = t_purc-menge.
        t_eket-charg = t_purc-charg.
        t_eket-matnr = t_purc-matnr.
        t_eket-werks = t_purc-werks.
        t_eket-meins = t_purc-meins.
        t_eket-lifnr = t_purc-lifnr.
        READ TABLE t_makt WITH KEY matnr = t_purc-matnr
                                         BINARY SEARCH.
        IF sy-subrc = 0.
          t_eket-maktx = t_makt-maktx.
        ENDIF.
        APPEND t_eket.
        CLEAR t_eket.
      ENDLOOP.
    ENDFORM.                    " f_move_eket
    *&      Form  f_select_ekes
          Routine to select EKES data for all corresponding entries
          of T_EKET.
    FORM f_select_ekes.
      DATA: l_tabix TYPE i.
    IF NOT s_date IS INITIAL.
       SELECT
               ebeln
               ebelp
               etens
               eindt
               menge
        INTO   TABLE t_ekes
         FROM
               ekes
        WHERE
               eindt IN s_date.
    ELSE.
      DESCRIBE TABLE t_purc LINES l_tabix.
      IF l_tabix GT 0.
        SELECT
                ebeln
                ebelp
                etens
                eindt
                menge
                dabmg
                vbeln
                vbelp
         FROM
                ekes
         INTO   TABLE t_ekes
               FOR ALL ENTRIES IN t_eket
                FOR ALL ENTRIES IN t_purc
         WHERE
                ebeln = t_purc-ebeln AND
                ebelp = t_purc-ebelp AND
                eindt IN s_date.
              AND ebeln eq p_ebeln.
           and matnr in p_matnr.
      ENDIF.
      CLEAR l_tabix.
      IF NOT s_date IS INITIAL AND NOT p_ebeln IS INITIAL.
        SELECT
                ekes~ebeln
                ekes~ebelp
                ekes~etens
                ekes~eindt
                ekes~menge
                ekes~dabmg
       APPENDING TABLE t_ekes
          FROM ekes
         WHERE
                eindt IN s_date AND
                ebeln EQ p_ebeln AND
                ebtyp EQ c_la.
      ELSEIF NOT s_date IS INITIAL AND p_ebeln IS INITIAL.
        SELECT
                    ekes~ebeln
                    ekes~ebelp
                    ekes~etens
                    ekes~eindt
                    ekes~menge
                    ekes~dabmg
           APPENDING TABLE t_ekes
              FROM ekes
             WHERE
                    eindt IN s_date AND
               ebeln EQ p_ebeln AND
                    ebtyp EQ c_la.
      ELSEIF s_date IS INITIAL AND NOT p_ebeln IS INITIAL.
        SELECT
                    ekes~ebeln
                    ekes~ebelp
                    ekes~etens
                    ekes~eindt
                    ekes~menge
                    ekes~dabmg
           APPENDING TABLE t_ekes
              FROM ekes
             WHERE
               eindt IN s_date AND
                    ebeln EQ p_ebeln AND
                    ebtyp EQ c_la.
      ENDIF.
      IF sy-subrc = 0.
        SORT t_ekes.
      ENDIF.
      IF NOT t_ekes[] IS INITIAL.
        t_ekes_temp[] = t_ekes[].
        SORT t_ekes_temp BY ebeln ebelp.
        DELETE ADJACENT DUPLICATES FROM t_ekes_temp COMPARING ebeln ebelp.
        LOOP AT t_ekes_temp.
          READ TABLE t_purc WITH KEY ebeln = t_ekes_temp-ebeln
                                     ebelp = t_ekes_temp-ebelp.
          IF sy-subrc NE 0.
            CLEAR t_purc.
            SELECT SINGLE
                  eket~ebeln
                  eket~ebelp
                  eket~eindt
                  eket~menge
                  eket~charg
                  ekpo~matnr
                  ekpo~werks
                  ekpo~meins
                  ekko~lifnr
           INTO  CORRESPONDING FIELDS OF t_purc
          FROM
                   (  ( eket  INNER JOIN  ekko  ON
                    eketebeln = ekkoebeln )   INNER JOIN  ekpo  ON
                    eketebelp = ekpoebelp  AND
                    ekpoebeln = ekkoebeln )
        WHERE
                 eket~ebeln = t_ekes_temp-ebeln
          AND    eket~ebelp = t_ekes_temp-ebelp
          AND    ekpo~elikz NE c_x
          AND    ekko~bstyp EQ c_f
          AND    ekko~bsart NE c_zar.
            IF sy-subrc EQ 0.
              APPEND t_purc.
              CLEAR t_purc.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      REFRESH: t_ekes_temp, t_ekes.
      CLEAR: t_ekes_temp, t_ekes.
    Once the header is filled up get the details from EKES
      SELECT ebeln ebelp  etens eindt menge dabmg vbeln vbelp
                         INTO TABLE t_ekes
                         FROM ekes
                         FOR ALL ENTRIES IN t_purc
                   WHERE ebeln EQ t_purc-ebeln.
    Mark the entries as 'X' which falls in the date range
      LOOP AT t_ekes.
        IF t_ekes-eindt IN s_date.
          t_ekes-mark = 'X'.
          MODIFY t_ekes INDEX sy-tabix TRANSPORTING mark.
        ENDIF.
      ENDLOOP.
      SORT t_ekes BY ebeln ebelp ASCENDING mark DESCENDING.
    Delete the entries from eket if no entries in EKES falls in the period
      LOOP AT t_purc.
        l_tabix = sy-tabix.
        READ TABLE t_ekes WITH KEY ebeln = t_purc-ebeln
                                   ebelp = t_purc-ebelp.
        IF sy-subrc EQ 0.
          IF t_ekes-mark NE 'X'.
            DELETE t_purc INDEX l_tabix.
          ENDIF.
        ENDIF.
      ENDLOOP.
    delete the entries from EKES which do not fall in the specified period
      DELETE t_ekes WHERE mark NE 'X'.
    ENDFORM.                    " f_select_ekes
    *&      Form  f_update_eket
          Routine to substitute relevant t_eket entries  with that of
          t_ekes entries.It does not modify the remaining entries for
          for which the corresponding values in t_ekes doesnot  exist.
    FORM f_update_eket.
      DATA: BEGIN OF lt_temp_eket OCCURS 0,
               ebeln LIKE eket-ebeln, "Purchasing Document Number
               ebelp LIKE eket-ebelp, "Item Number of Purchasing Document
               eindt LIKE eket-eindt, "Item delivery date
               menge LIKE eket-menge, "Scheduled quantity
               dabmg LIKE ekes-dabmg,  " Delivered quantity
               matnr LIKE ekpo-matnr, "Material code
               maktx LIKE makt-maktx, "Material Description-- jp check
               etens LIKE ekes-etens, "Sequence Number
               meins LIKE ekpo-meins, "Unit of measure
               lifnr LIKE ekko-lifnr, "Vendor number
               charg LIKE eket-charg, " Batch number   Added by PD 08/08/03
               vbeln LIKE ekes-vbeln,
               vbelp LIKE ekes-vbelp,
            END OF lt_temp_eket,
            l_menge LIKE ekes-menge.
      LOOP AT t_eket.
        LOOP AT t_ekes WHERE ebeln = t_eket-ebeln
                        AND  ebelp = t_eket-ebelp.
    Added by PD 08/08/03
          MOVE t_eket-charg TO lt_temp_eket-charg.
    addition ends
          MOVE t_eket-ebeln TO lt_temp_eket-ebeln.
          MOVE t_eket-ebelp TO lt_temp_eket-ebelp.
          MOVE t_eket-meins TO lt_temp_eket-meins.
          CLEAR l_menge.
          l_menge = t_ekes-menge - t_ekes-dabmg.
          IF l_menge LE 0.
            CONTINUE.
          ELSE.
            MOVE l_menge TO lt_temp_eket-menge.
          ENDIF.
          MOVE t_ekes-eindt TO lt_temp_eket-eindt.
          MOVE t_ekes-etens TO lt_temp_eket-etens.
          MOVE t_eket-lifnr TO lt_temp_eket-lifnr.
          MOVE t_eket-maktx TO lt_temp_eket-maktx.
          MOVE t_eket-matnr TO lt_temp_eket-matnr.
          MOVE t_ekes-vbeln TO lt_temp_eket-vbeln.
          MOVE t_ekes-vbelp TO lt_temp_eket-vbelp.
          APPEND lt_temp_eket.
          CLEAR lt_temp_eket.
          CLEAR t_ekes.
        ENDLOOP.
        IF sy-subrc NE 0.
    Added by PD 08/08/03
          MOVE t_eket-charg TO lt_temp_eket-charg.
    addition ends
          MOVE t_eket-ebeln

    Dear
    Problem No 1 : we are working in a process industries with three plants each of them have three order type. we have define MRP group in "OPPR" then assign each MRP group to Orde types in "OPPE". Now the problem is whn i convert plan order in process order for any material systme automaticaly pick the order type PIi01.
    Answer :
    1.Please check the OPPR -Plant and MRP group -Select Order Type Button -Check what Order Type you have assinged here ( PI01( May be the default Process Order Type )
    2.If you are maintaing MRP group ( 0001 or 0002) , did you asisng the same in MRP1 view ?? because
    3.Did you maintain the similar Order type in OPKP -Define Production Scheduling Profile ? -This has highest priority .
    4.Did you maintain correct order type in OPJH-Maintain Order Type ??
    Refer the expert comments on the same issue : Strategy group to define production order type
    Problem No 2: 2nd Problem is system system is not creating plan order for prrevios dates. say i enter PIR for month of november from first november to 30th november and run MRP on 29th the sytem create plan order on 30th of november with exception message 30.
    Answer : You can plan the order in back dated , if you maitain Satrt date in the Past optiuon in OPU3/OPU5-Define Scheduling parameters .Goto OPU3 -Select the Order Type -Double click -Maintain 90-60 days in the Start Date in the past in Scheduling Control and Details scheduling tab .
    Hope it helps
    regards
    JH

  • Column Order of index on 12M record table

    I have table name
    tablea
    Fields
    kickoff_id int
    and
    status int
    and many others.....
    Now tablea contain 12M records.
    I have query
    Select * from
    tablea
    where
    status =2 and kickoff_id > 0
    status can have three possible values 0,1,2
    and
    kickoff_id can have 0 to 8 values....
    I am planning to make an index on status and kickoff_id
    So what should be preferrable order of index...
    status,kickoff_id
    or
    kickoff_id and status
    Regards
    Mahesh

    I would think the column which restricts the number of rows to a greater extent should come first.
    also, here is someting from Oracle documentation that may help you decide on type of index that will be better suited for
    your requirement.
    ===============================================================================================================
    Cardinality
    The advantages of using bitmap indexes are greatest for low cardinality columns: that is, columns in which the number of distinct values is small compared to the number of rows in the table. If the number of distinct values of a column is less than 1% of the number of rows in the table, or if the values in a column are repeated more than 100 times, then the column is a candidate for a bitmap index. Even columns with a lower number of repetitions and thus higher cardinality can be candidates if they tend to be involved in complex conditions in the WHERE clauses of queries.
    For example, on a table with 1 million rows, a column with 10,000 distinct values is a candidate for a bitmap index. A bitmap index on this column can out-perform a B-tree index, particularly when this column is often queried in conjunction with other columns.
    B-tree indexes are most effective for high-cardinality data: that is, data with many possible values, such as CUSTOMER_NAME or PHONE_NUMBER. In some situations, a B-tree index can be larger than the indexed data. Used appropriately, bitmap indexes can be significantly smaller than a corresponding B-tree index.
    In ad hoc queries and similar situations, bitmap indexes can dramatically improve query performance. AND and OR conditions in the WHERE clause of a query can be quickly resolved by performing the corresponding Boolean operations directly on the bitmaps before converting the resulting bitmap to rowids. If the resulting number of rows is small, the query can be answered very quickly without resorting to a full table scan of the table.
    =============================================================================================================================
    I have table name
    tablea
    Fields
    kickoff_id int
    and
    status int
    and many others.....
    Now tablea contain 12M records.
    I have query
    Select * from
    tablea
    where
    status =2 and kickoff_id > 0
    status can have three possible values 0,1,2
    and
    kickoff_id can have 0 to 8 values....
    I am planning to make an index on status and kickoff_id
    So what should be preferrable order of index...
    status,kickoff_id
    or
    kickoff_id and status
    Regards
    Mahesh

  • 'unable to connect' and  index.php

    Hi. 
    I am developing a Web Site and index.php is my point of entry.
    Document Root     Library/WebServer/Documents
    so my path is:       Library/WebServer/Documents/dwwdSite
    httpd.conf file is modified to add index.php  and have it listed first.
    <IfModule dir_module>
    DirectoryIndex   index.php   index.html
    <IfModule>
    Troubleshooting:
    I was using Netbeans IDE and when I ran index.php it opened in the browser.
    When I launched 'any' of my index.php files from Netbeans IDE, they opened correctly in the brower
    I am NOW using DreamweaverCC and when I run the index.php Error Message ' Unable to Connect'.
    For the last 2 days I have been working on this and I am completely stuck.
    This morning I thought of another way to test the 'unable to connect' error.
    I decided to copy this same file into Netbeans IDE and I NOW get the same Error Message ' Unable to Connect'
    when running index.php from Netbeans.
    Somehow, my settings are not correctly configured anymore.
    Here are my screenshots from Dreamweaver > manage sites.
    I believe that this is a rather simple fix that I am somehow not seeing.
    Maybe some can spot some mistake.
    I appreciate your help and explanation.

    Hi Sudarshan.
    You have been very kind and very clear in your explanation.
    One of the very best that I have ever communicated with on this forum !
    I have checked many, many things.
    I wanted to make certain that I killed apache and restarted it.
    I do not think it is RUNNING at all.
    1.
    myNameMacBookPro:~ myName$ pwd
    /Users/myName
    2.
    myNameMacBookPro:~ myName$ ps -ax | grep http
    1892 ttys000    0:00.00 grep http
    3.
    myNameMacBookPro:  myName$ hostname
    local
    4.
    myNameMacBookPro:etc myName$ cd apache2
    reginaMacBookPro:apache2 myName$ ls
    extra            httpd.conf.pre-update    mime.types        other
    httpd.conf        magic            original        users
    5.
    myNameMacBookPro:apache2 myName$ sudo nano httpd.conf
    myNameMacBookPro:apache2 myName$ sudo apachectl -k restart
    Syntax error on line 1 of /private/etc/apache2/users/myNameBU.conf:
    Invalid command '{\\rtf1\\ansi\\ansicpg1252\\cocoartf1187\\cocoasubrtf370', perhaps misspelled or defined by a module not included in the server configuration
    httpd not running, trying to start
    myNameMacBookPro:apache2 myName$
    6.
    The above code may be a hint at part of the problem.
    I created myNameBU.conf   as a backup when I was editing the file.
    QUESTION.  Why is /private/etc/apache2/users/myNameBU.conf:
    being referenced above ?
    7.
    I scanned my ports from preferences and found these two which I believe are what you stated they should be.
    port 80 is html
    port 8080 is html-alt
    8.
    I have modified this line and tried it both ways restarting apachectl each time.
    AllowOverride None
    AllowOverride All
    9.
    And here is a part of my httpd.conf.
    excerpts.
    httpd.conf
    # User/Group: The name (or #number) of the user/group to run httpd as.
    # It is usually good practice to create a dedicated user and group for
    # running httpd, as with most system services.
    User _www
    Group _www
    # DocumentRoot: The directory out of which you will serve your
    # documents. By default, all requests are taken from this directory, but
    # symbolic links and aliases may be used to point to other locations.
    DocumentRoot "/Library/WebServer/Documents"
    # Each directory to which Apache has access can be configured with respect
    # to which services and features are allowed and/or disabled in that
    # directory (and its subdirectories).
    # First, we configure the "default" to be a very restrictive set of
    # features.
    <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
    </Directory>
    10.
    I took a look at this too.
    usr/bin
    #path to httpd binary including options if necessary
    HTTPD = "usr/sgin/httpd"
    # pick up any environmental variables if test - f /usr/sbin/envvars; then ./usr/sbin/envvars
    fi
    STATUSURL = "http://localhost:80/server-status
    11.
    Just a reminder.
    I started writing .php scripts with Netbeans IDE.
    The programs ran:  I got output in the brower.  Things worked just fine !
    I started writing .php scripts with DreamweaverCC.
    The programs NEVER ran.
    I have always gotten 'Unable to Connect"
    Firefox/Safari can't establish a connection to the server at localhost.'
    12.
    QUESTION.
    At one point I was on the phone with a member of the Adobe Technical Support Team.
    They connect to my desktop (only) remotely.  I am very cautious about this.
    Could something have been inadvertently changed when they did this ?
    They do need to connect through a PORT - yes ?
    This is very frustrating and I am loosing days of work.
    I want to get back to Web Development
    I love Adobe products but this should not be such a huge obstacle.
    When I called Technical support (after much troubleshooting individually and on this forum)
    the fellow told me that the ONLY support FTP - not LOCALHOST.
    This makes no sense.  People develop 'locally' then put it ftp it in the production stage.
    Again, I appreciate your assistance.

  • How to hint hash join order on indexes ?

    Hi,
    in my 9.2.0.8 DB I've got query like this:
    SELECT COUNT (agreementno) cnt
    FROM followup
    WHERE agreementno = :v001 AND actioncode = :v002 AND resultcode = :v003;
    Plan
    SELECT STATEMENT  CHOOSECost: 11  Bytes: 18  Cardinality: 1                      
         5 SORT AGGREGATE  Bytes: 18  Cardinality: 1                 
              4 VIEW index$_join$_001 Cost: 11  Bytes: 18  Cardinality: 1            
                   3 HASH JOIN  Bytes: 18  Cardinality: 1       
                        1 INDEX RANGE SCAN NON-UNIQUE IDX_FOLLOWUP06 Cost: 13  Bytes: 18  Cardinality: 1 
                        2 INDEX RANGE SCAN UNIQUE PK_FOLLOWUP Cost: 13  Bytes: 18  Cardinality: 1  I need to change join order of indexes, so the proble one would be PK_FOLLOWUP .
    Of course the best plan is index range scan on pk but during to hight CF Oracle is combining 2 indexes .
    Regards.
    Greg

    Hmm sorry for red-herring.
    I guess you could also consider hand-coding the index join, something like:
    SELECT /*+ ORDERED USE_HASH (b) */
           COUNT (a.empno)
    FROM  (SELECT e.empno
           FROM emp e
           WHERE e.empno > 7000) a,
          (SELECT e.empno
           FROM emp e
           WHERE e.ename LIKE 'S%') b
    WHERE  a.ROWID = b.ROWID;or...
    WITH e AS
         (SELECT e.empno, e.ename
            FROM emp e)
    SELECT /*+ ORDERED USE_HASH (b) */
           COUNT (a.empno)
    FROM   e a, e b
    WHERE  b.ename LIKE 'S%'
    AND    a.empno > 7000
    AND    a.ROWID = b.ROWID;

  • Full Table Scans / Index Scans /Index Organized Tables...

    Can anyone give me an example where an index would be the best option to query 99% of data.
    Can anyone give me an example where a FTS is the best option to query 1% of data.
    If IOT are better in terms of performance and also in terms of saving storage space then why cant we always use IOT in the database . Why do we need to follow the regular table and index to store data.
    Responses are appreciated !
    null
    null

    It's easiest to consider extreme cases for thought experiments:
    Can anyone give me an example where an index would
    be the best option to query 99% of data.
    The obvious case would be where you had an order by clause with a matching index. With a well-clustered table, the optimizer might decide to do an index full scan to collect 100% of the data in order rather then doing a tablescan and sort.
    In fact, with first_rows_1 optimization, and certainly with first_rows optimization before it, you would sometimes see the optimizer use such a strategy to read 100% of the data in the right order, discarding 99% of it, rather than selecting 1% of the data through a more precise index and sorting it.
    Can anyone give me an example where a FTS is the
    best option to query 1% of data.
    Consider a table in a tablespace with an 8Kb block size - with short rows (roughly 80 bytes) you can get 100 rows per block. Run a query that wants to get one row from each block (i.e. 1% of the data). A tablescan with a db_file_multiblock_read_count of just 2 would be more efficient than an indexed access. For a more realistic example consider picking one row from every 16th block when your db_file_multiblock_read_count is 128.
    In fact, if you check what Oracle does when you sample 1% of the rows using the sample clause, you may see cases where it actualy uses multiblock reads to scan the whole table, discarding the blocks it doesn't want.
    Regards
    Jonathan Lewis
    http://jonathanlewis.wordpress.com
    http://www.jlcomp.demon.co.uk

  • Add dummy Like condition '%%' inorder to use index scan

    Hi,
    I have a table like below , which have data which capture each minute(columnB) transactions
    CREATE TABLE tableA
    columnA     CHAR(6),
    columnB     Date,
    columnC     Number(3,0),
    CRT_ID    CHAR(8),
    CRT_TS    TIMESTAMP(6),
    UPD_ID    CHAR(8),
    UPD_TS    TIMESTAMP(6),
    CONSTRAINT PK_tableA_colAB PRIMARY KEY (columnA , columnB )
    When I query the table, to get the list of transaction between particular date, it goes for TABLE FULL SCAN.( cost and execution time also high)
    Total no of records in the table(tableA) is 13669094, the below query returns only around 150 to 200 no of records
    select columnA,columnB,columnC,Crt_Id,Crt_ts
    from tableA
    where columnB between TO_DATE('06/28/2013','MM/DD/yyyy') and to_date('06/29/2013','MM/DD/yyyy')
    when i use the query like below it will use the INDEX SCAN (cost and execution time also less)
    select      columnA,columnB,columnC,Crt_Id,Crt_ts
    from         tableA
    where      columnB between TO_DATE('06/28/2013','MM/DD/yyyy') and to_date('06/29/2013','MM/DD/yyyy')
    and           columnA like '%%'
    Please advice is it good to add condition like '%%' inorder to use the index scan. Also kindly let me know if it works in the same way in all environments.

    Hi RP0428,
    Thank you very much for your response.
    1. Are you collecting statistics on the table and indexes?
    2. Post the exact command you use to collect those statistics.
    Recently my DBA had gathered the statistics on 17-Dec-2013 22:01:32(LAST_ANALYSED). I am unaware about what query he ran to gather the statistics.
    After that it executed in 28 seconds itself, before it took several minutes.
    My concerns is only gathering the statistics periodically will improve performance.
    Table is growing with thousands of records daily. Already it have 13669094 records. In order to avoid Full Table Scan
    From my knowledge, I feel creating composite Range-Hash partitioning will helpful in improving the performance.
    3. Post info about the data distribution for the two columns used by the index. This is 'counts and amounts' for each of the two columns and a GROUP BY date showing the skew of the values.
    Plz find the details below
    ColumnA
    ColumnB
    AA1
    118800
    AA2
    117600
    AA3
    118200
    AA4
    118200
    AA5
    118200
    AA6
    118800
    AA7
    118800
    AA8
    117600
    AA9
    117600
    AA10
    117600
    AA11
    118200
    AA12
    118200
    AA13
    37234
    AA14
    118200
    AA118
    18450
    AA119
    96600
    AA120
    105000
    AA121
    105000
    AA122
    105600

  • Smartview Query Evaluation Order and Performance

    In which order does Smartview evaluate a query? i.e., rows first, then columns, then POV? I have experimented with a few large drill-downs and queries using a single dense dimension in the row (organization), and putting everything else in the columns, and timed that against a query that takes everything in the columns except Month into the POV. The query that is only rows and columns (no POV) has won every single time, sometimes twice as fast.
    I am curious about the evaluation order (if there is one), and am wondering if having a POV, or not, affects performance.
    Thanks

    Also look at the Execution Plan. The execution plan might be changing
    because of different bind variables being "peeked".
    With a certain execution plan, Oracle might be doing an Index Range Scan
    and retrieving the rows by the Index order, making the ORDER BY redundant
    (even if you see it in the Explain Plan).
    With a different execution plan, the rows might not be appearing in order and
    Oracle has to really do an explicit ORDER BY.

  • Report for open orders and amount of product confirmed

    Hi All,
    Can some one give me an idea on a report which shows open orders and also shows amount of product confirmed against these open orders?
    Thanks,
    Neelima.

    Hi Veni,
    Incomplete order are the order's in which some data is missing so that particular order can't be further processed, that is what you could check through "Incompletion Log". Whereas Open orders are the orders which are open for further processing viz. deliver billing(but open order is a complete order i.e. no data missing).
    Check this program:
    *& Report ZGM_OPENPO *
    REPORT ZGM_OPENPO NO STANDARD PAGE HEADING LINE-SIZE 132 LINE-COUNT 36(2).
    TABLES: t001w, "Plants/Branches
    ekko, "Purchasing Document Header
    ekpo, "Purchasing Document Item
    marc, "Plant Data for Material
    mara. "General Material Data
    DATA:
    BEGIN OF itab OCCURS 0,
    matnr LIKE marc-matnr,
    werks LIKE marc-werks,
    beskz LIKE marc-beskz,
    mmsta LIKE marc-mmsta,
    END OF itab.
    DATA: BEGIN OF iekpo OCCURS 0,
    ebeln LIKE ekpo-ebeln,
    menge LIKE ekpo-menge,
    aedat LIKE ekpo-aedat,
    wemng LIKE eket-wemng,
    END OF iekpo.
    DATA: BEGIN OF iekko OCCURS 0,
    ebeln LIKE ekko-ebeln,
    lifnr LIKE ekko-lifnr,
    bedat LIKE ekko-bedat,
    ekgrp LIKE ekko-ekgrp,
    END OF iekko.
    selection-screen:begin of block b1 with frame title text001.
    SELECT-OPTIONS werks FOR ekpo-werks OBLIGATORY.
    SELECT-OPTIONS matnr FOR ekpo-matnr.
    SELECT-OPTIONS beskz FOR marc-beskz.
    SELECT-OPTIONS bsart FOR ekko-bsart.
    selection-screen:end of block b1.
    INITIALIZATION.
    AT SELECTION-SCREEN ON werks. "Validate for werks
    SELECT SINGLE * FROM t001w WHERE werks IN werks.
    IF sy-subrc 0. MESSAGE e429(mo). ENDIF.
    AT SELECTION-SCREEN ON matnr.
    SELECT SINGLE * FROM mara WHERE matnr IN matnr.
    IF sy-subrc 0. MESSAGE e429(mo).ENDIF.
    START-OF-SELECTION.
    SELECT * FROM marc INTO CORRESPONDING FIELDS OF TABLE itab WHERE werks IN werks AND beskz IN beskz AND
    matnr IN matnr.
    SELECT ebeln FROM ekpo INTO CORRESPONDING FIELDS OF TABLE iekpo
    FOR ALL ENTRIES IN itab WHERE matnr = itab-matnr AND loekz EQ space.
    SELECT ebeln lifnr bedat ekgrp FROM ekko INTO CORRESPONDING FIELDS OF
    TABLE iekko
    FOR ALL ENTRIES IN iekpo WHERE ebeln = iekpo-ebeln AND bsart IN bsart.
    SELECT ebeln menge aedat FROM ekpo INTO CORRESPONDING FIELDS OF iekpo
    FOR ALL ENTRIES IN iekpo WHERE ebeln = iekpo-ebeln. MODIFY iekpo INDEX sy-dbcnt.
    ENDSELECT.
    SORT iekpo BY aedat.
    DELETE ADJACENT DUPLICATES FROM iekpo COMPARING ebeln.
    SELECT wemng FROM eket INTO CORRESPONDING FIELDS OF iekpo FOR ALL ENTRIES IN iekpo WHERE ebeln = iekpo-ebeln.
    MODIFY iekpo INDEX sy-dbcnt.
    ENDSELECT.
    END-OF-SELECTION.
    DATA : file_name TYPE string.
    file_name = 'c:\pay_det\open_po1.xls'.
    DATA : BEGIN OF it_join_fields OCCURS 0,
    field_name(20),
    END OF it_join_fields.
    CLEAR it_join_fields.
    it_join_fields-field_name = 'ebeln'.
    APPEND it_join_fields.
    CLEAR it_join_fields.
    it_join_fields-field_name = 'menge'.
    APPEND it_join_fields.
    CLEAR it_join_fields.
    it_join_fields-field_name = 'aedat'.
    APPEND it_join_fields.
    CLEAR it_join_fields.
    it_join_fields-field_name = 'wemng'.
    APPEND it_join_fields.
    CLEAR it_join_fields.
    CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
    BIN_FILESIZE =
    filename = file_name
    filetype = 'ASC'
    APPEND = 'X'
    write_field_separator = 'X'
    TABLES
    data_tab = iekpo
    FIELDNAMES = it_join_fields
    IF sy-subrc 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    LOOP AT iekpo.
    IF iekpo-menge NE iekpo-wemng.
    WRITE:/4 iekpo-ebeln,21 iekpo-menge ,46 iekpo-aedat, 56 iekpo-wemng.
    ENDIF.
    ENDLOOP.
    if sy-subrc 0. write / 'no data exist for this plant'. endif.
    TOP-OF-PAGE.
    uline 1(80).
    WRITE :/ sy-vline, 20 ' OPEN purchase ORDERs report' color 5,
    80 sy-vline.
    uline 1(80).
    WRITE:/ sy-vline , 4 'PURSCHASE ORDER' COLOR COL_HEADING,
    20 sy-vline, 21 'ORDER QUANTITY' COLOR COL_HEADING,
    45 sy-vline, 46 'item change' color col_heading, 55 sy-vline,
    56 'RECIEVED QUANTITY' COLOR COL_HEADING, 80 sy-vline.
    uline 1(80).
    END-OF-PAGE.
    WRITE :/ 'PAGE NUMBER' ,SY-PAGNO.
    Hope this helps you.
    Regards,
    Chandra Sekhar

Maybe you are looking for

  • No Twitter and Facebook Notifications

    There's still no sign of Twitter and Facebook push notifications appearing following the introduction of Notifications in ios5. All the settings in Notifications for these apps are set correctly and I have the latest versions of the apps. I'm getting

  • What is the best external hard drive for iMac time machine?

    I need to purchase 1TB external hard drive to use as a backup drive for iMac (lion) Time Machine. I currently have the Lacie little disk but I need more storage. All I need is a simple USB connection.

  • JMS Adapter performance

    Hello I'am using JMS Adapter to initiate bpel processes. Can anyone suggest, how can I increase JMS adapter performance. Now JMS adapter is able to consume about 700 messages per minute. Does anyone could provide me some performance number for this a

  • Lumia 800 Sound problems on call

    Hello guys. I wanted to know if anyone has ever happened to this thing with this beautiful terminal. Many times when I answer a call can not hear who's calling me and after many tests I noticed that, if when I answer I hear a noise as if it were turn

  • Test and Production system

    Hy all. Our Problem is the following. One of our customers wants to have a Productive and a Test-Instance of Oracle DB and Mobile Server. If you create an application, the Mobile Server is creating Tables (CVR$..., CEQ$...) in the schema where the or