Column_name in user_ind_columns when descending??

When I create an indexe with a descending column, the value in user_ind_columns.column_name is not the actual column_name, it's something like SYS_NC00002$. I'm trying to build a Select statement to identify the columns in an index, whether ascending or descending. Everything is fine if ascending, but if descending I cannot figure out how to identify the actual column_name. What table should I be joining to?

Interesting. I notice from analyzing descending index that it appears to include NULL rows - I am not sure why, since B*Tree and FBI do not. Not sure whether that explains the difference times Laurent is getting for his range scan.
Can't think of a reason to use a descending index on a single column. Tom Kyte points out (in his book, available on Amazon etc. blah blah) that multi-column descending/ascending indexes can be used to sort queries with different sort orders on different columns (providing they match those of the index presumably).
Anyway, back to NULLs...
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> SELECT DECODE (GROUPING (comm), 1, 'Total:', comm) comm, COUNT (*)
  2  FROM   emp
  3  GROUP BY ROLLUP (comm);
COMM                                       COUNT(*)
0                                                 1
300                                               1
500                                               1
1400                                              1
                                                 10
Total:                                           14
6 rows selected.
SQL> -- create normal B*Tree
SQL> CREATE INDEX index_name ON emp (comm);
Index created.
SQL> ANALYZE INDEX index_name COMPUTE STATISTICS;
Index analyzed.
SQL> SELECT index_name, index_type, num_rows
  2  FROM   user_indexes
  3  WHERE  index_name = 'INDEX_NAME';
INDEX_NAME                     INDEX_TYPE                    NUM_ROWS
INDEX_NAME                     NORMAL                               4
SQL> DROP INDEX index_name;
Index dropped.
SQL> -- create descending FBI
SQL> CREATE INDEX index_name ON emp (comm DESC);
Index created.
SQL> ANALYZE INDEX index_name COMPUTE STATISTICS;
Index analyzed.
SQL> SELECT index_name, index_type, num_rows
  2  FROM   user_indexes
  3  WHERE  index_name = 'INDEX_NAME';
INDEX_NAME                     INDEX_TYPE                    NUM_ROWS
INDEX_NAME                     FUNCTION-BASED NORMAL               14 <---
SQL> DROP INDEX index_name;
Index dropped.
SQL> -- create normal FBI
SQL> CREATE INDEX index_name ON emp (comm + 0);
Index created.
SQL> ANALYZE INDEX index_name COMPUTE STATISTICS;
Index analyzed.
SQL> SELECT index_name, index_type, num_rows
  2  FROM   user_indexes
  3  WHERE  index_name = 'INDEX_NAME';
INDEX_NAME                     INDEX_TYPE                    NUM_ROWS
INDEX_NAME                     FUNCTION-BASED NORMAL                4
SQL>

Similar Messages

  • How to Create primary key index with duplicate rows.

    Hi All,
    While rebuilding an index on a table , I am getting error that there are duplicate rows in a table.
    Searching out the reason led me to an interesting observation.
    Please follow.
    SELECT * FROM user_ind_columns WHERE table_name='SERVICE_STATUS';
    INDEX_NAME     TABLE_NAME     COLUMN_NAME     COLUMN_POSITION     COLUMN_LENGTH     CHAR_LENGTH     DESCEND
    SERVICE_STATUS_PK     SERVICE_STATUS     SUBSCR_NO_RESETS     2     22     0      ASC
    SERVICE_STATUS_PK     SERVICE_STATUS     STATUS_TYPE_ID     3     22     0     ASC
    SERVICE_STATUS_PK     SERVICE_STATUS     ACTIVE_DT     4     7     0     ASC
    SERVICE_STATUS_PK     SERVICE_STATUS     SUBSCR_NO     1     22     0     ASC
    SELECT index_name,index_type,table_name,table_type,uniqueness, status,partitioned FROM user_indexes WHERE index_name='SERVICE_STATUS_PK';
    INDEX_NAME     INDEX_TYPE      TABLE_NAME     TABLE_TYPE     UNIQUENESS     STATUS     PARTITIONED
    SERVICE_STATUS_PK     NORMAL     SERVICE_STATUS     TABLE     UNIQUE     VALID     NO
    SELECT constraint_name ,constraint_type,table_name,status,DEFERRABLE,DEFERRED,validated,index_name
    FROM user_constraints WHERE constraint_name='SERVICE_STATUS_PK';
    CONSTRAINT_NAME     CONSTRAINT_TYPE     TABLE_NAME      STATUS     DEFERRABLE     DEFERRED     VALIDATED     INDEX_NAME
    SERVICE_STATUS_PK     P     SERVICE_STATUS     ENABLED     NOT DEFERRABLE     IMMEDIATE VALIDATED     SERVICE_STATUS_PK
    1. Using index scan:
    SELECT COUNT (*)
    FROM (SELECT subscr_no, active_dt, status_type_id, subscr_no_resets
    FROM service_status
    GROUP BY subscr_no, active_dt, status_type_id, subscr_no_resets
    HAVING COUNT (*) > 1) ;
    no rows returned
    Explain plan:
    Operation     OBJECT Name     ROWS     Bytes     Cost     OBJECT Node     IN/OUT     PStart     PStop
    SELECT STATEMENT Optimizer MODE=CHOOSE          519 K          14756                     
    FILTER                                        
    SORT GROUP BY NOSORT          519 K     7 M     14756                     
    INDEX FULL SCAN     ARBOR.SERVICE_STATUS_PK     10 M     158 M     49184                     
    2. Using Full scan:
    SELECT COUNT (*)
    FROM (SELECT /*+ full(s) */ subscr_no, active_dt, status_type_id, subscr_no_resets
    FROM service_status s
    GROUP BY subscr_no, active_dt, status_type_id, subscr_no_resets
    HAVING COUNT (*) > 1) ;
    71054 rows returned.
    Explain Plan:
    Operation     Object Name     Rows     Bytes     Cost     Object Node     In/Out     PStart     PStop
    SELECT STATEMENT Optimizer Mode=CHOOSE          1           24123                     
    SORT AGGREGATE          1                               
    VIEW          519 K          24123                     
    FILTER                                        
    SORT GROUP BY          519 K     7 M     24123                     
    TABLE ACCESS FULL     ARBOR.SERVICE_STATUS     10 M     158 M     4234                     
    Index SERVICE_STATUS_PK is a unique and composite primary key VALID index. And the constraint is ENABLED and VALIDATED still having duplicate rows in table.
    How it is possible?
    Is it an Oracle soft Bug??
    Regards,
    Saket Bansal

    saket bansal wrote:
    Values are inserted as single rows inserts through an GUI interface.And you still claim to have over 71K duplicate records, without the GUI getting any kind of errors?
    That does not add up and can only be explained by a "bug".
    I tried inserting a duplicate record but failed.
    SQL> insert into service_status (select * from service_status where rownum <2);
    insert into service_status (select * from service_status where rownum <2)
    ERROR at line 1:
    ORA-00001: unique constraint (ARBOR.SERVICE_STATUS_PK) violatedAre you really sure there is no other way data in this table is populated/manipulated in bulk?

  • [11g R2] Update-Select with BITMAP CONVERSION TO ROWIDS = very slow

    Hi all,
    I have to deal with some performance issues in our database.
    The query below takes between 30 minutes and 60 minutes to complete (30 minutes during the batch process and 1h when I executed the query with SQLPLUS):
    SQL_ID  4ky65wauhg1ub, child number 0
    UPDATE fiscpt x    SET (x.cimld) =           (SELECT COUNT (*)         
        FROM fiscpt f             WHERE f.comar = x.comar               AND
    f.coint = x.coint               AND f.nucpt = x.nucpt               AND
    f.codev != x.codev               AND f.cimvt != 0)  WHERE x.comar IN
    ('CBOT', 'CME', 'EUREX', 'FOREX', 'LIFFE', 'METAL', 'OCC')
    Plan hash value: 697684605
    | Id  | Operation                          | Name    | Starts | E-Rows |E-Bytes| Cost (%CPU)| E-Time   | A-Rows |   A-Time   | Buffers | Reads  |  OMem |  1Mem | Used-Mem |
    |   0 | UPDATE STATEMENT                   |         |      1 |        |       |   773K(100)|          |      0 |00:22:22.30 |      36M|   7629 |       |       |          |
    |   1 |  UPDATE                            | FISCPT  |      1 |        |       |            |          |      0 |00:22:22.30 |      36M|   7629 |       |       |          |
    |   2 |   INLIST ITERATOR                  |         |      1 |        |       |            |          |    179K|00:00:00.37 |    1221 |      3 |       |       |          |
    |*  3 |    INDEX RANGE SCAN                | FISCPT1 |      7 |    154K|  4984K|     5   (0)| 00:00:01 |    179K|00:00:00.23 |    1221 |      3 |       |       |          |
    |   4 |   SORT AGGREGATE                   |         |    179K|      1 |    33 |            |          |    179K|01:02:58.45 |      35M|   3020 |       |       |          |
    |*  5 |    TABLE ACCESS BY INDEX ROWID     | FISCPT  |    179K|      1 |    33 |     4  (25)| 00:00:01 |  63681 |01:02:57.80 |      35M|   3020 |       |       |          |
    |   6 |     BITMAP CONVERSION TO ROWIDS    |         |    179K|        |       |            |          |    121K|01:02:52.71 |      35M|    885 |       |       |          |
    |   7 |      BITMAP AND                    |         |    179K|        |       |            |          |  87091 |01:02:52.25 |      35M|    885 |       |       |          |
    |   8 |       BITMAP CONVERSION FROM ROWIDS|         |    179K|        |       |            |          |    179K|00:00:03.31 |     241K|      0 |       |       |          |
    |*  9 |        INDEX RANGE SCAN            | FISCPT2 |    179K|   1547 |       |     1   (0)| 00:00:01 |   1645K|00:00:02.23 |     241K|      0 |       |       |          |
    |  10 |       BITMAP CONVERSION FROM ROWIDS|         |    179K|        |       |            |          |    148K|01:02:44.98 |      35M|    885 |       |       |          |
    |  11 |        SORT ORDER BY               |         |    179K|        |       |            |          |   2412M|00:52:19.70 |      35M|    885 |  1328K|   587K| 1180K (0)|
    |* 12 |         INDEX RANGE SCAN           | FISCPT1 |    179K|   1547 |       |     2   (0)| 00:00:01 |   2412M|00:22:11.22 |      35M|    885 |       |       |          |
    Query Block Name / Object Alias (identified by operation id):
       1 - UPD$1
       3 - UPD$1 / X@UPD$1
       4 - SEL$1
       5 - SEL$1 / F@SEL$1
    Predicate Information (identified by operation id):
       3 - access(("X"."COMAR"='CBOT' OR "X"."COMAR"='CME' OR "X"."COMAR"='EUREX' OR "X"."COMAR"='FOREX' OR "X"."COMAR"='LIFFE' OR "X"."COMAR"='METAL' OR
                  "X"."COMAR"='OCC'))
       5 - filter("F"."CIMVT"<>0)
       9 - access("F"."COINT"=:B1 AND "F"."NUCPT"=:B2)
      12 - access("F"."COMAR"=:B1)
           filter(("F"."CODEV"<>:B1 AND "F"."COMAR"=:B2))
    Column Projection Information (identified by operation id):
       2 - (upd=6; cmp=2,3,4,5) "SYS_ALIAS_4".ROWID[ROWID,10], "X"."COMAR"[VARCHAR2,5], "X"."COINT"[VARCHAR2,11], "X"."NUCPT"[VARCHAR2,8], "X"."CODEV"[VARCHAR2,3],
           "X"."CIMLD"[NUMBER,22]
       3 - "SYS_ALIAS_4".ROWID[ROWID,10], "X"."COMAR"[VARCHAR2,5], "X"."COINT"[VARCHAR2,11], "X"."NUCPT"[VARCHAR2,8], "X"."CODEV"[VARCHAR2,3], "X"."CIMLD"[NUMBER,22]
       4 - (#keys=0) COUNT(*)[22]
       5 - "F".ROWID[ROWID,10], "F"."COMAR"[VARCHAR2,5], "F"."COINT"[VARCHAR2,11], "F"."NUCPT"[VARCHAR2,8], "F"."CODEV"[VARCHAR2,3], "F"."CIMVT"[NUMBER,22]
       6 - "F".ROWID[ROWID,10]
       7 - STRDEF[BM VAR, 10], STRDEF[BM VAR, 10], STRDEF[BM VAR, 32496]
       8 - STRDEF[BM VAR, 10], STRDEF[BM VAR, 10], STRDEF[BM VAR, 32496]
       9 - "F".ROWID[ROWID,10]
      10 - STRDEF[BM VAR, 10], STRDEF[BM VAR, 10], STRDEF[BM VAR, 32496]
      11 - (#keys=1) "F".ROWID[ROWID,10]
      12 - "F".ROWID[ROWID,10]
    Note
       - dynamic sampling used for this statement (level=2)We intentionally don't gather statistics on the FISCPT table.
    There are no indexes on the column updated so the slowness is not due to updating of indexes:
    SQL> select index_name, column_name from user_ind_columns where table_name='FISCPT';
    INDEX_NAME COLUMN_NAM
    FISCPT1    NUCPT
    FISCPT1    CODEV
    FISCPT1    RGCID
    FISCPT1    DATRA
    FISCPT2    COINT
    FISCPT2    NUCPT
    FISCPT3    NUFIS
    FISCPT1    COINT
    FISCPT1    COMAR
    9 ligne(s) sÚlectionnÚe(s).
    SQL> select count(1) from FISCPT;
      COUNT(1)
        179369If I replace the UPDATE-SELECT statement by a SELECT, the query runs in few seconds:
    SQL>  SELECT COUNT (*)
      2               FROM fiscpt f, fiscpt x
      3              WHERE f.comar = x.comar
      4                AND f.coint = x.coint
      5                AND f.nucpt = x.nucpt
      6                AND f.codev != x.codev
      7                AND f.cimvt != 0
      8   and x.comar IN ('CBOT', 'CME', 'EUREX', 'FOREX', 'LIFFE', 'METAL', 'OCC');
      COUNT(*)
         63681
    EcoulÚ : 00 :00 :00.75
    SQL> select * from table(dbms_xplan.display_cursor());
    PLAN_TABLE_OUTPUT
    SQL_ID  5drbpdmdv0gv1, child number 0
    SELECT COUNT (*)              FROM fiscpt f, fiscpt x
    WHERE f.comar = x.comar               AND f.coint = x.coint
      AND f.nucpt = x.nucpt               AND f.codev != x.codev
       AND f.cimvt != 0  and x.comar IN ('CBOT', 'CME', 'EUREX', 'FOREX',
    'LIFFE', 'METAL', 'OCC')
    Plan hash value: 1326101771
    | Id  | Operation                      | Name    | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT               |         |       |       |       |  2477 (100)|          |
    |   1 |  SORT AGGREGATE                |         |     1 |    53 |       |            |          |
    |*  2 |   HASH JOIN                    |         |   107K|  5557K|  4720K|  2477   (1)| 00:00:30 |
    |   3 |    INLIST ITERATOR             |         |       |       |       |            |          |
    |*  4 |     TABLE ACCESS BY INDEX ROWID| FISCPT  |   107K|  3460K|       |  1674   (1)| 00:00:21 |
    |*  5 |      INDEX RANGE SCAN          | FISCPT1 |   154K|       |       |   873   (0)| 00:00:11 |
    |*  6 |    INDEX FAST FULL SCAN        | FISCPT1 |   154K|  3021K|       |   337   (0)| 00:00:05 |
    Predicate Information (identified by operation id):
       2 - access("F"."COMAR"="X"."COMAR" AND "F"."COINT"="X"."COINT" AND
                  "F"."NUCPT"="X"."NUCPT")
           filter("F"."CODEV"<>"X"."CODEV")
       4 - filter("F"."CIMVT"<>0)
       5 - access(("F"."COMAR"='CBOT' OR "F"."COMAR"='CME' OR "F"."COMAR"='EUREX' OR
                  "F"."COMAR"='FOREX' OR "F"."COMAR"='LIFFE' OR "F"."COMAR"='METAL' OR "F"."COMAR"='OCC'))
       6 - filter(("X"."COMAR"='CBOT' OR "X"."COMAR"='CME' OR "X"."COMAR"='EUREX' OR
                  "X"."COMAR"='FOREX' OR "X"."COMAR"='LIFFE' OR "X"."COMAR"='METAL' OR "X"."COMAR"='OCC'))
    Note
       - dynamic sampling used for this statement (level=2)The optimizer parameters are at their default values.
    The database is an 11.2.0.1 and the OS is a Linux Red hat.
    can someone help me to tune this query please?

    Thanks Tubby for your reply,
    We don't gather statistics at all on this table because it's a process table: on the production database we may have several processes which insert/delet/update rows into this table so we prefer to rely on Dynamic Sampling instead of gathering statistics each time a process need to access this table.
    I don't dynamic sampling is the problem here because when i use the level 10 the execution plan is the same:
    SQL> alter session set optimizer_dynamic_sampling=10;
    Session modifiÚe.
    EcoulÚ : 00 :00 :00.00
    SQL> explain plan for
      2  UPDATE fiscpt x
      3     SET (x.cimld) =
      4            (SELECT COUNT (*)
      5               FROM fiscpt f
      6              WHERE f.comar = x.comar
      7                AND f.coint = x.coint
      8                AND f.nucpt = x.nucpt
      9                AND f.codev != x.codev
    10                AND f.cimvt != 0)
    11   WHERE x.comar IN ('CBOT', 'CME', 'EUREX', 'FOREX', 'LIFFE', 'METAL', 'OCC');
    ExplicitÚ.
    EcoulÚ : 00 :00 :01.04
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    Plan hash value: 697684605
    | Id  | Operation                          | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | UPDATE STATEMENT                   |         |   179K|  5780K|   896K (20)| 02:59:23 |
    |   1 |  UPDATE                            | FISCPT  |       |       |            |          |
    |   2 |   INLIST ITERATOR                  |         |       |       |            |          |
    |*  3 |    INDEX RANGE SCAN                | FISCPT1 |   179K|  5780K|     5   (0)| 00:00:01 |
    |   4 |   SORT AGGREGATE                   |         |     1 |    33 |            |          |
    |*  5 |    TABLE ACCESS BY INDEX ROWID     | FISCPT  |     1 |    33 |     4  (25)| 00:00:01 |
    |   6 |     BITMAP CONVERSION TO ROWIDS    |         |       |       |            |          |
    |   7 |      BITMAP AND                    |         |       |       |            |          |
    |   8 |       BITMAP CONVERSION FROM ROWIDS|         |       |       |            |          |
    |*  9 |        INDEX RANGE SCAN            | FISCPT2 |  1794 |       |     1   (0)| 00:00:01 |
    |  10 |       BITMAP CONVERSION FROM ROWIDS|         |       |       |            |          |
    |  11 |        SORT ORDER BY               |         |       |       |            |          |
    |* 12 |         INDEX RANGE SCAN           | FISCPT1 |  1794 |       |     2   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       3 - access("X"."COMAR"='CBOT' OR "X"."COMAR"='CME' OR "X"."COMAR"='EUREX' OR
                  "X"."COMAR"='FOREX' OR "X"."COMAR"='LIFFE' OR "X"."COMAR"='METAL' OR
                  "X"."COMAR"='OCC')
       5 - filter("F"."CIMVT"<>0)
       9 - access("F"."COINT"=:B1 AND "F"."NUCPT"=:B2)
      12 - access("F"."COMAR"=:B1)
           filter("F"."CODEV"<>:B1 AND "F"."COMAR"=:B2)
    Note
       - dynamic sampling used for this statement (level=10)I have tested the query you provided and the execution plan is almost the same (A FILTER clause is added but the COST isthe same):
    SQL> explain plan for
      2  UPDATE   fiscpt x
      3     SET (x.cimld) =
      4            (SELECT  COUNT (*)
      5               FROM fiscpt f
      6              WHERE f.comar = x.comar
      7                AND f.coint = x.coint
      8                AND f.nucpt = x.nucpt
      9                AND f.codev != x.codev
    10                AND f.cimvt != 0
    11                and   f.comar IN ('CBOT', 'CME', 'EUREX', 'FOREX', 'LIFFE', 'METAL', 'OCC')
    12                )
    13   WHERE x.comar IN ('CBOT', 'CME', 'EUREX', 'FOREX', 'LIFFE', 'METAL', 'OCC');
    ExplicitÚ.
    EcoulÚ : 00 :00 :00.01
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    Plan hash value: 1565986742
    | Id  | Operation                           | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | UPDATE STATEMENT                    |         |   154K|  4984K|   773K (20)| 02:34:41 |
    |   1 |  UPDATE                             | FISCPT  |       |       |            |          |
    |   2 |   INLIST ITERATOR                   |         |       |       |            |          |
    |*  3 |    INDEX RANGE SCAN                 | FISCPT1 |   154K|  4984K|     5   (0)| 00:00:01 |
    |   4 |   SORT AGGREGATE                    |         |     1 |    33 |            |          |
    |*  5 |    FILTER                           |         |       |       |            |          |
    |*  6 |     TABLE ACCESS BY INDEX ROWID     | FISCPT  |     1 |    33 |     4  (25)| 00:00:01 |
    |   7 |      BITMAP CONVERSION TO ROWIDS    |         |       |       |            |          |
    |   8 |       BITMAP AND                    |         |       |       |            |          |
    |   9 |        BITMAP CONVERSION FROM ROWIDS|         |       |       |            |          |
    |* 10 |         INDEX RANGE SCAN            | FISCPT2 |  1547 |       |     1   (0)| 00:00:01 |
    |  11 |        BITMAP CONVERSION FROM ROWIDS|         |       |       |            |          |
    |  12 |         SORT ORDER BY               |         |       |       |            |          |
    |* 13 |          INDEX RANGE SCAN           | FISCPT1 |  1547 |       |     2   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       3 - access("X"."COMAR"='CBOT' OR "X"."COMAR"='CME' OR "X"."COMAR"='EUREX' OR
                  "X"."COMAR"='FOREX' OR "X"."COMAR"='LIFFE' OR "X"."COMAR"='METAL' OR "X"."COMAR"='OCC')
       5 - filter(:B1='CBOT' OR :B2='CME' OR :B3='EUREX' OR :B4='FOREX' OR :B5='LIFFE' OR
                  :B6='METAL' OR :B7='OCC')
       6 - filter(("F"."COMAR"='CBOT' OR "F"."COMAR"='CME' OR "F"."COMAR"='EUREX' OR
                  "F"."COMAR"='FOREX' OR "F"."COMAR"='LIFFE' OR "F"."COMAR"='METAL' OR
                  "F"."COMAR"='OCC') AND "F"."CIMVT"<>0)
      10 - access("F"."COINT"=:B1 AND "F"."NUCPT"=:B2)
      13 - access("F"."COMAR"=:B1)
           filter("F"."CODEV"<>:B1 AND ("F"."COMAR"='CBOT' OR "F"."COMAR"='CME' OR
                  "F"."COMAR"='EUREX' OR "F"."COMAR"='FOREX' OR "F"."COMAR"='LIFFE' OR
                  "F"."COMAR"='METAL' OR "F"."COMAR"='OCC') AND "F"."COMAR"=:B2)
    Note
       - dynamic sampling used for this statement (level=2)I have executed this statement for 50 minutes and it is still running now
    Furthermore, I have used the tuning advisor but it has not found any recommendation.
    is it normal that oracle takes 1hour to update 175k rows?

  • SQL loader load data very slow...

    Hi,
    On my production server have issue of insert. Regular SQL loder load file, it take more time for insert the data in database.
    First 2 and 3 hours one file take 8 to 10 seconds after that it take 5 minutes.
    As per my understanding OS I/O is very slow, First 3 hours DB buffer is free and insert data in buffer normal.
    But when buffer is fill then going for buffer waits and then insert is slow on. If it rite please tell me how to increase I/O.
    Some analysis share here of My server...................
    [root@myserver ~]# iostat
    Linux 2.6.18-194.el5 (myserver) 06/01/2012
    avg-cpu: %user %nice %system %iowait %steal %idle
    3.34 0.00 0.83 6.66 0.00 89.17
    Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
    sda 107.56 2544.64 3140.34 8084953177 9977627424
    sda1 0.00 0.65 0.00 2074066 16
    sda2 21.57 220.59 1833.98 700856482 5827014296
    sda3 0.00 0.00 0.00 12787 5960
    sda4 0.00 0.00 0.00 8 0
    sda5 0.69 2.75 15.07 8739194 47874000
    sda6 0.05 0.00 0.55 5322 1736264
    sda7 0.00 0.00 0.00 2915 16
    sda8 0.50 9.03 5.24 28695700 16642584
    sda9 0.51 0.36 24.81 1128290 78829224
    sda10 0.52 0.00 5.98 9965 19004088
    sda11 83.71 2311.26 1254.71 7343426336 3986520976
    [root@myserver ~]# hdparm -tT /dev/sda11
    /dev/sda11:
    Timing cached reads: 10708 MB in 2.00 seconds = 5359.23 MB/sec
    Timing buffered disk reads: 540 MB in 3.00 seconds = 179.89 MB/sec
    [root@myserver ~]# sar -u -o datafile 1 6
    Linux 2.6.18-194.el5 (mca-webreporting2) 06/01/2012
    09:57:19 AM CPU %user %nice %system %iowait %steal %idle
    09:57:20 AM all 6.97 0.00 1.87 16.31 0.00 74.84
    09:57:21 AM all 6.74 0.00 1.25 17.48 0.00 74.53
    09:57:22 AM all 7.01 0.00 1.75 16.27 0.00 74.97
    09:57:23 AM all 6.75 0.00 1.12 13.88 0.00 78.25
    09:57:24 AM all 6.98 0.00 1.37 16.83 0.00 74.81
    09:57:25 AM all 6.49 0.00 1.25 14.61 0.00 77.65
    Average: all 6.82 0.00 1.44 15.90 0.00 75.84
    [root@myserver ~]# sar -u -o datafile 1 6
    Linux 2.6.18-194.el5 (mca-webreporting2) 06/01/2012
    09:57:19 AM CPU %user %nice %system %iowait %steal %idle
    mca-webreporting2;601;2012-05-27 16:30:01 UTC;2.54;1510.94;3581.85;0.00
    mca-webreporting2;600;2012-05-27 16:40:01 UTC;2.45;1442.78;3883.47;0.04
    mca-webreporting2;599;2012-05-27 16:50:01 UTC;2.44;1466.72;3893.10;0.04
    mca-webreporting2;600;2012-05-27 17:00:01 UTC;2.30;1394.43;3546.26;0.00
    mca-webreporting2;600;2012-05-27 17:10:01 UTC;3.15;1529.72;3978.27;0.04
    mca-webreporting2;601;2012-05-27 17:20:01 UTC;9.83;1268.76;3823.63;0.04
    mca-webreporting2;600;2012-05-27 17:30:01 UTC;32.71;1277.93;3495.32;0.00
    mca-webreporting2;600;2012-05-27 17:40:01 UTC;1.96;1213.10;3845.75;0.04
    mca-webreporting2;600;2012-05-27 17:50:01 UTC;1.89;1247.98;3834.94;0.04
    mca-webreporting2;600;2012-05-27 18:00:01 UTC;2.24;1184.72;3486.10;0.00
    mca-webreporting2;600;2012-05-27 18:10:01 UTC;18.68;1320.73;4088.14;0.18
    mca-webreporting2;600;2012-05-27 18:20:01 UTC;1.82;1137.28;3784.99;0.04
    [root@myserver ~]# vmstat
    procs -----------memory---------- -swap -----io---- system -----cpu------
    r b swpd free buff cache si so bi bo in cs us sy id wa st
    0 1 182356 499444 135348 13801492 0 0 3488 247 0 0 5 2 89 4 0
    [root@myserver ~]# dstat -D sda
    ----total-cpu-usage---- dsk/sda -net/total- -paging -system
    usr sys idl wai hiq siq| read writ| recv send| in out | int csw
    3 1 89 7 0 0|1240k 1544k| 0 0 | 1.9B 1B|2905 6646
    8 1 77 14 0 1|4096B 3616k| 433k 2828B| 0 0 |3347 16k
    10 2 77 12 0 0| 0 1520k| 466k 1332B| 0 0 |3064 15k
    8 2 77 12 0 0| 0 2060k| 395k 1458B| 0 0 |3093 14k
    8 1 78 12 0 0| 0 1688k| 428k 1460B| 0 0 |3260 15k
    8 1 78 12 0 0| 0 1712k| 461k 1822B| 0 0 |3390 15k
    7 1 78 13 0 0|4096B 6372k| 449k 1950B| 0 0 |3322 15k
    AWR sheet output
    Wait Events
    ordered by wait time desc, waits desc (idle events last)
    Event Waits %Time -outs Total Wait Time (s) Avg wait (ms) Waits /txn
    free buffer waits 1,591,125 99.95 19,814 12 129.53
    log file parallel write 31,668 0.00 1,413 45 2.58
    buffer busy waits 846 77.07 653 772 0.07
    control file parallel write 10,166 0.00 636 63 0.83
    log file sync 11,301 0.00 565 50 0.92
    write complete waits 218 94.95 208 955 0.02
    SQL> select 'free in buffer (NOT_DIRTY)',round((( select count(DIRTY) N_D from v$bh where DIRTY='N')*100)/(select count(*) from v$bh),2)||'%' DIRTY_PERCENT from dual
    union
    2 3 select 'keep in buffer (YES_DIRTY)',round((( select count(DIRTY) N_D from v$bh where DIRTY='Y')*100)/(select count(*) from v$bh),2)||'%' DIRTY_PERCENT from dual;
    'FREEINBUFFER(NOT_DIRTY)' DIRTY_PERCENT
    free in buffer (NOT_DIRTY) 10.71%
    keep in buffer (YES_DIRTY) 89.29%
    Rag....

    1)
    Yah This is partition table and on it Local partition index.
    SQL> desc GR_CORE_LOGGING
    Name Null? Type
    APPLICATIONID VARCHAR2(20)
    SERVICEID VARCHAR2(25)
    ENTERPRISENAME VARCHAR2(25)
    MSISDN VARCHAR2(15)
    STATE VARCHAR2(15)
    FROMTIME VARCHAR2(25)
    TOTIME VARCHAR2(25)
    CAMP_ID VARCHAR2(50)
    TRANSID VARCHAR2(25)
    MSI_INDEX NUMBER
    SQL> select index_name,column_name from user_ind_columns where table_name='GR_CORE_LOGGING';
    INDEX_NAME
    COLUMN_NAME
    GR_CORE_LOGGING_IND
    MSISDN
    2) I was try direct but after that i was drop this table and again create new partition table and create fresh index. but still same issue.

  • Need a dump on indexes for a table

    RDBMS novice here asking what is probably an easy one.
    How, in SQLPlus, can I get a spill on all the indexes of a specific table. In Oracle Rdb, the statement "show table (indexes) foo;" did the job. Looking for something similar in RDBMS. I need to see the components of the index (in their right order). It would also be great to see some of the other stuff you specify when you create the index.
    Thanks in Advance

    You can get the indexes for a table by querying
    SELECT INDEX_NAME FROM USER_INDEXES WHERE TABLE_NAME='XXX'
    You can get the columns within the index (in order) by
    SELECT COLUMN_NAME FROM USER_IND_COLUMNS WHERE INDEX_NAME='XXX' ORDER BY COLUMN_POSITION

  • One can create an index on a non-existent column in a table

    I am using Oracle 10.2.0.3 on Windows 2003. I wanted to create an index on columnb of
    Tablea. When I use statement like:
    Create index index1 on tablea (‘columnb’) …
    Oracle created index: index1. However, when I looked tat the column in user_ind_columns it had some weird colculn like SYS_NCxxxx. For sometime, I had
    No idea what was going on. My index was not being used in queries at all. Then it dawned on me that I should not put single quotes around columnb. Once I removed quotes, things worked as expected.
    But why does Oracle allow index on a non-existent column?

    we cannot create the index on nonexistent column of table We can. Its called a function-based index. Here's how we do it.
    Also read Howard's reply, right above yours.
    SQL> desc t
    Name                                      Null?    Type
    OWNER                                     NOT NULL VARCHAR2(30)
    OBJECT_NAME                               NOT NULL VARCHAR2(30)
    SUBOBJECT_NAME                                     VARCHAR2(30)
    OBJECT_ID                                 NOT NULL NUMBER
    DATA_OBJECT_ID                                     NUMBER
    OBJECT_TYPE                                        VARCHAR2(19)
    CREATED                                   NOT NULL DATE
    LAST_DDL_TIME                             NOT NULL DATE
    TIMESTAMP                                          VARCHAR2(19)
    STATUS                                             VARCHAR2(7)
    TEMPORARY                                          VARCHAR2(1)
    GENERATED                                          VARCHAR2(1)
    SECONDARY                                          VARCHAR2(1)
    SQL> create index t_idx on t( substr(object_name, 1, 5));
    Index created.
    SQL> select column_name from user_ind_columns where index_name = 'T_IDX';
    COLUMN_NAME
    SYS_NC00014$
    SQL> select index_type from user_indexes where index_name = 'T_IDX';
    INDEX_TYPE
    FUNCTION-BASED NORMAL
    SQL>

  • Optimize indexes

    10g. A table has 50 columns, 17 indexes, operation on this table is slow.
    How to optimize these indexes? Where to find which is not used, etc.
    Thanks.

    neem wrote:
    checked: all indexes has been used. how to optimize these indexes is for next step.How did you check that all the indexes had been used ?
    If you've used a query against the AWR looking for execution plans that reference the index, you've made two possible mistakes.
    First - the AWR only records a selection of all the SQL that has been executed, so you might decide that some indexes weren't being used when they were. (In your case, you've decided that all the indexes were used, so this doesn't apply).
    Second - when the automatic stats collection job runs in 10g, it uses a simple piece of SQL that will generate an execution plan that accesses the index, so you may decide that you've used the index when the only SQL that ever uses it is the SQL that collects stats on it.
    Since you don't know what the indexes are for (and "the developers created them" is not an answer to that question) then a simple first step is a quick sanity check. Look at all the index definitions to see if any of them seem to be redundant. The very first step (which may then need to be refined) is a query like:
    break on index_name skip 1
    column index_name, format a32
    column column_name format a32
    select 
         index_name, column_name
    from
         user_ind_columns
    where
         table_name = 'your tablename goes here'
    order by
         index_name, column_position
    ;(This assumes you are connected as the owner of the table - if not, you will have to query dba_ind_columns and include a predicate on the table_owner column).
    Post the results to the forum if you can't spot any obvious suspects:
    Regards
    Jonathan Lewis
    http://jonathanlewis.wordpress.com
    http://www.jlcomp.demon.co.uk
    "Science is more than a body of knowledge; it is a way of thinking"
    Carl Sagan
    To post code, statspack/AWR report, execution plans or trace files, start and end the section with the tag {noformat}{noformat} (lowercase, curly brackets, no spaces) so that the text appears in fixed format.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Question for Cardinality

    hi
    I am Korean. so I'm not good at English.
    this is question about oracle Execution Plan?
    Index information is as below.
    INDEX_OWNER
    INDEX_NAME
    TABLE_OWNER
    TABLE_NAME
    COLUMN_NAME
    COLUMN_POSITION
    COLUMN_LENGTH
    CHAR_LENGTH
    DESCEND
    OPS$RKTIBG2
    IDX_FTIOIR_02
    OPS$RKTIBG2
    FTIOIR
    REMT_PROC_DATE
    1
    8
    8
    ASC
    OPS$RKTIBG2
    IDX_FTIOIR_02
    OPS$RKTIBG2
    FTIOIR
    BRN_NO
    2
    3
    3
    ASC
    OPS$RKTIBG2
    IDX_FTIOIR_02
    OPS$RKTIBG2
    FTIOIR
    INST_NO
    3
    3
    3
    ASC
    total count of FTIOIR table is as below.
    SQL> select count(*) from FTIOIR  ;
      COUNT(*)
        384853
    Elapsed: 00:00:00.03
    This is Question for a total of 4 cases query
    SQL> SELECT
      2        ID_NO,
      3  CUST_NAME,
      4          STA_TYPE,
      5        USD_AMT,
      6        REF_NO,
      7    REMT_PROC_DATE VALUE_DATE,
      8      REMT_CCY,
      9        TO_CHAR(REMT_AMT,'99,999,999,990.99'),
    10        TO_CHAR(USD_AMT, '99,999,999,990.99'),
    11        RSN_CODE1,
    12        DESIG_BANK_CODE,
    13        DECODE(REMT_TYPE, 'O', DECODE(STA_TYPE,'1','취결','3','등록','5','정리','6','퇴결','8','진행','9','취소',' '),
    14                          'I', DECODE(STA_TYPE,'1','등록','3','진행','5','정리','7','거절','8','진행','9','취소',' ')),
    15        TO_CHAR(REMT_CHRG,'9,999,999,999,999'),
    16  TO_CHAR(BANK_CHRG,'9,999,999,999,999'),
    17  TO_CHAR(CABL_CHRG,'9,999,999,999,999'),
    18        DECODE(REMT_TYPE,'I',APCT_DETL1,BENE_DETL1),
    19        ACCT_NO1,
    20        DECODE(NVL(CERT_ISSUE_FLAG,0),0,'미발급','발급'),
    21        REMT_CANC_DATE,
    22  REMT_SETL_DATE,
    23  TRIM(TO_CHAR(REMT_AMT, '00000000000000.99')),
    24        TRIM(TO_CHAR(REMT_CHRG,'00000000000000000')),
    25        TRIM(TO_CHAR(BANK_CHRG,'00000000000000000')),
    26        TRIM(TO_CHAR(CABL_CHRG,'00000000000000000'))
    27    FROM FTIOIR
    28    WHERE REMT_PROC_DATE BETWEEN '20120101' AND '20130101'
    29    ORDER BY VALUE_DATE, REF_NO;
    77652 rows selected.
    Elapsed: 00:00:09.81
    Execution Plan
    Plan hash value: 1710270931
    | Id  | Operation          | Name  | Rows  | Bytes |TempSpc| Cost (%CPU)| Time    |
    |  0 | SELECT STATEMENT  |        | 77060 |    17M|      | 10815  (4)| 00:03:15 |
    |  1 |  SORT ORDER BY    |        | 77060 |    17M|    20M| 10815  (4)| 00:03:15 |
    |*  2 |  TABLE ACCESS FULL| FTIOIR | 77060 |    17M|      |  9246  (4)| 00:02:47 |
    Predicate Information (identified by operation id):
      2 - filter("REMT_PROC_DATE">='20120101' AND "REMT_PROC_DATE"<='20130101')
    Statistics
            29  recursive calls
              6  db block gets
          19616  consistent gets
          20515  physical reads
          3736  redo size
      15218140  bytes sent via SQL*Net to client
          57456  bytes received via SQL*Net from client
          5178  SQL*Net roundtrips to/from client
              0  sorts (memory)
              1  sorts (disk)
          77652  rows processed
    Case 1) 1 year data was derived by using ‘between’ keyword with ‘REMT_PROC_DATA’ field in where clause.
      We notice that optimizer uses ‘full scan’ since number of records searched was as much as 77652.
    SQL> SELECT /*+ INDEX(FTIOIR IDX_FTIOIR_02) */
      2        ID_NO,
      3  CUST_NAME,
      4          STA_TYPE,
      5        USD_AMT,
      6        REF_NO,
      7    REMT_PROC_DATE VALUE_DATE,
      8      REMT_CCY,
      9        TO_CHAR(REMT_AMT,'99,999,999,990.99'),
    10        TO_CHAR(USD_AMT, '99,999,999,990.99'),
    11        RSN_CODE1,
    12        DESIG_BANK_CODE,
    13        DECODE(REMT_TYPE, 'O', DECODE(STA_TYPE,'1','취결','3','등록','5','정리','6','퇴결','8','진행','9','취소',' '),
    14                          'I', DECODE(STA_TYPE,'1','등록','3','진행','5','정리','7','거절','8','진행','9','취소',' ')),
    15        TO_CHAR(REMT_CHRG,'9,999,999,999,999'),
    16  TO_CHAR(BANK_CHRG,'9,999,999,999,999'),
    17  TO_CHAR(CABL_CHRG,'9,999,999,999,999'),
    18        DECODE(REMT_TYPE,'I',APCT_DETL1,BENE_DETL1),
    19        ACCT_NO1,
    20        DECODE(NVL(CERT_ISSUE_FLAG,0),0,'미발급','발급'),
    21        REMT_CANC_DATE,
    22  REMT_SETL_DATE,
    23  TRIM(TO_CHAR(REMT_AMT, '00000000000000.99')),
    24        TRIM(TO_CHAR(REMT_CHRG,'00000000000000000')),
    25        TRIM(TO_CHAR(BANK_CHRG,'00000000000000000')),
    26        TRIM(TO_CHAR(CABL_CHRG,'00000000000000000'))
    27    FROM FTIOIR
    28    WHERE REMT_PROC_DATE BETWEEN '20120101' AND '20130101'
    29    ORDER BY VALUE_DATE, REF_NO;
    77652 rows selected.
    Elapsed: 00:00:08.37
    Execution Plan
    Plan hash value: 465296239
    | Id  | Operation                    | Name          | Rows  | Bytes |TempSpc| Cost (%CPU)| Time    |
    |  0 | SELECT STATEMENT            |              | 77060 |    17M|      | 41035  (1)| 00:12:19 |
    |  1 |  SORT ORDER BY              |              | 77060 |    17M|    20M| 41035  (1)| 00:12:19 |
    |  2 |  TABLE ACCESS BY INDEX ROWID| FTIOIR        | 77060 |    17M|      | 39466  (1)| 00:11:51 |
    |*  3 |    INDEX RANGE SCAN          | IDX_FTIOIR_02 | 77060 |      |      |  150  (4)| 00:00:03 |
    Predicate Information (identified by operation id):
      3 - access("REMT_PROC_DATE">='20120101' AND "REMT_PROC_DATE"<='20130101')
    Statistics
            30  recursive calls
              6  db block gets
          51411  consistent gets
          4880  physical reads
              0  redo size
      15218140  bytes sent via SQL*Net to client
          57456  bytes received via SQL*Net from client
          5178  SQL*Net roundtrips to/from client
              0  sorts (memory)
              1  sorts (disk)
          77652  rows processed
    Case 2)   It’s confirmed that query is done with ‘index rage scan’ and it takes more time than ‘full scan’ when we give ‘index hint(/*+ INDEX(FTIOIR IDX_FTIOIR_02) */)’ hint using same where clause used in 1).
    SQL> SELECT
      2        ID_NO,
          CUST_NAME,
      3    4        STA_TYPE,
      5        USD_AMT,
      6        REF_NO,
      7    REMT_PROC_DATE VALUE_DATE,
      8      REMT_CCY,
      9        TO_CHAR(REMT_AMT,'99,999,999,990.99'),
    10        TO_CHAR(USD_AMT, '99,999,999,990.99'),
    11        RSN_CODE1,
    12        DESIG_BANK_CODE,
    13        DECODE(REMT_TYPE, 'O', DECODE(STA_TYPE,'1','취결','3','등록','5','정리','6','퇴결','8','진행','9','취소',' '),
    14                          'I', DECODE(STA_TYPE,'1','등록','3','진행','5','정리','7','거절','8','진행','9','취소',' ')),
    15        TO_CHAR(REMT_CHRG,'9,999,999,999,999'),
    16  TO_CHAR(BANK_CHRG,'9,999,999,999,999'),
    17  TO_CHAR(CABL_CHRG,'9,999,999,999,999'),
    18        DECODE(REMT_TYPE,'I',APCT_DETL1,BENE_DETL1),
    19        ACCT_NO1,
    20        DECODE(NVL(CERT_ISSUE_FLAG,0),0,'미발급','발급'),
    21        REMT_CANC_DATE,
    22  REMT_SETL_DATE,
    23  TRIM(TO_CHAR(REMT_AMT, '00000000000000.99')),
    24        TRIM(TO_CHAR(REMT_CHRG,'00000000000000000')),
    25        TRIM(TO_CHAR(BANK_CHRG,'00000000000000000')),
    26        TRIM(TO_CHAR(CABL_CHRG,'00000000000000000'))
    27    FROM FTIOIR
    28    WHERE REMT_PROC_DATE BETWEEN '20120101' AND '20130101'
    29      AND (REMT_PROC_DATE LIKE '2012%' OR REMT_PROC_DATE LIKE '2013%')
    30    ORDER BY VALUE_DATE, REF_NO
      ; 31
    77652 rows selected.
    Elapsed: 00:00:09.23
    Execution Plan
    Plan hash value: 465296239
    | Id  | Operation                    | Name          | Rows  | Bytes | Cost (%CPU)| Time    |
    |  0 | SELECT STATEMENT            |              |  391 | 90712 |  355  (4)| 00:00:07 |
    |  1 |  SORT ORDER BY              |              |  391 | 90712 |  355  (4)| 00:00:07 |
    |  2 |  TABLE ACCESS BY INDEX ROWID| FTIOIR        |  391 | 90712 |  354  (3)| 00:00:07 |
    |*  3 |    INDEX RANGE SCAN          | IDX_FTIOIR_02 |  391 |      |  154  (6)| 00:00:03 |
    Predicate Information (identified by operation id):
      3 - access("REMT_PROC_DATE">='20120101' AND "REMT_PROC_DATE"<='20130101')
          filter("REMT_PROC_DATE" LIKE '2012%' OR "REMT_PROC_DATE" LIKE '2013%')
    Statistics
            29  recursive calls
              5  db block gets
          51411  consistent gets
          4311  physical reads
              0  redo size
      15218140  bytes sent via SQL*Net to client
          57456  bytes received via SQL*Net from client
          5178  SQL*Net roundtrips to/from client
              0  sorts (memory)
              1  sorts (disk)
          77652  rows processed
    Case 3)   In this particular case, even though index column is used in where clause, we think that query should be done by ‘full scan’ considering number of records returned.
      But ‘index range scan was used and value of row in Execution plan was just 391.
    SQL> SELECT
      2        ID_NO,
      3  CUST_NAME,
      4          STA_TYPE,
      5        USD_AMT,
      6        REF_NO,
      7    REMT_PROC_DATE VALUE_DATE,
      8      REMT_CCY,
      9        TO_CHAR(REMT_AMT,'99,999,999,990.99'),
    10        TO_CHAR(USD_AMT, '99,999,999,990.99'),
    11        RSN_CODE1,
    12        DESIG_BANK_CODE,
    13        DECODE(REMT_TYPE, 'O', DECODE(STA_TYPE,'1','취결','3','등록','5','정리','6','퇴결','8','진행','9','취소',' '),
    14                          'I', DECODE(STA_TYPE,'1','등록','3','진행','5','정리','7','거절','8','진행','9','취소',' ')),
    15        TO_CHAR(REMT_CHRG,'9,999,999,999,999'),
    16  TO_CHAR(BANK_CHRG,'9,999,999,999,999'),
    17  TO_CHAR(CABL_CHRG,'9,999,999,999,999'),
    18        DECODE(REMT_TYPE,'I',APCT_DETL1,BENE_DETL1),
    19        ACCT_NO1,
    20        DECODE(NVL(CERT_ISSUE_FLAG,0),0,'미발급','발급'),
    21        REMT_CANC_DATE,
    22  REMT_SETL_DATE,
    23  TRIM(TO_CHAR(REMT_AMT, '00000000000000.99')),
    24        TRIM(TO_CHAR(REMT_CHRG,'00000000000000000')),
    25        TRIM(TO_CHAR(BANK_CHRG,'00000000000000000')),
    26        TRIM(TO_CHAR(CABL_CHRG,'00000000000000000'))
    27    FROM FTIOIR
    28    WHERE REMT_PROC_DATE BETWEEN '20121231' AND '20130101'
    29    ORDER BY VALUE_DATE, REF_NO;
    423 rows selected.
    Elapsed: 00:00:00.93
    Execution Plan
    Plan hash value: 1710270931
    | Id  | Operation          | Name  | Rows  | Bytes |TempSpc| Cost (%CPU)| Time    |
    |  0 | SELECT STATEMENT  |        | 68425 |    15M|      | 10634  (4)| 00:03:12 |
    |  1 |  SORT ORDER BY    |        | 68425 |    15M|    18M| 10634  (4)| 00:03:12 |
    |*  2 |  TABLE ACCESS FULL| FTIOIR | 68425 |    15M|      |  9244  (4)| 00:02:47 |
    Predicate Information (identified by operation id):
      2 - filter("REMT_PROC_DATE">='20121231' AND "REMT_PROC_DATE"<='20130101')
    Statistics
              0  recursive calls
              1  db block gets
          19616  consistent gets
          19608  physical reads
              0  redo size
          83234  bytes sent via SQL*Net to client
            828  bytes received via SQL*Net from client
            30  SQL*Net roundtrips to/from client
              1  sorts (memory)
              0  sorts (disk)
            423  rows processed
    Case 4)    ‘Index rage scan’ is expected to be used when just two days’ data is derived since derived data would be small portion of whole table.
      But it’s done with ‘full scan’
      Here’s my questions.
    1. What could be the reason of decrease in value of rows in Execution Plan(Case 3) ?
      I would like know what rows is. Does it mean Cardinality ?
    2. Why ‘full scan’ is used when ‘Index rage scan’ is more efficient to query two days’ data ? (Case 4)

    myueongyun wrote:
    What is the selectivity of  formula in LIKE clause?
    Selectivity of a column: it's basically the number of distinct values divided by the number of all values (rows) - a primary key column has selectivity 1.
    Selectivities near 1 are considered good ones vs. poor selectivities having values near 0.
    and let me know good reference site about oracle selectivity(or cardinality) you know, if you have enough time
    Hoek already did it
    maybe adding two Jonathan's book titles:
    Cost-Based Oracle Fundamentals
    Oracle Core - Essential Internals for DBAs and Developers
    Regards
    Etbin

  • The PL/SQL command (select/update) was hanged for long time

    We have a proc program to access a 160 rows table (F_TRDATA), however, it always hanged for a long time, then it was retarted by our defence process.
    (1)Table structure:
    SQL> desc F_TRDATA;
    Name Null? Type
    SCP_NBR NUMBER
    A_INDEX NUMBER
    A_BITMAP LONG
    SQL> select index_name, column_name from user_ind_columns where TABLE_NAME='F_TRDATA';
    INDEX_NAME
    COLUMN_NAME
    I_F_TRDATA
    SCP_NBR
    I_F_TRDATA
    A_INDEX
    (2)Use DBLINK between two different machines:
    LONG rtc;
    char f_tabname[100];
    EXEC SQL BEGIN DECLARE SECTION;
    char srvname[100];
    char dblink_name[100];
    EXEC SQL END DECLARE SECTION;
    sprintf(srvname,"%s",(const char*)STRING(INOBJECT::srvname).ToUpper());
    EXEC SQL SELECT DB_LINK INTO :dblink_name FROM ALL_DB_LINKS WHERE OWNER=:srvname;
         db.setLastSqlCode(sqlca.sqlcode);
         if (sqlca.sqlcode!=0)
              TRACE("SELECT DB_LINK error "<<sqlca.sqlerrm.sqlerrmc)
              return VAL_ERROR;
         else
              TRACE("SELECT DB_LINK OK");
    sprintf(f_tabname,"F_%s@%s",(const char*)STRING(parent->getClassName()),(const char*)STRING(dblink_name));
    TRACE_SHOW(f_tabname);
    rtc=get_free_ri(f_tabname);
    EXEC SQL COMMIT;
    (3)get_free_ri ():
    memset(s_ln,0,800);
    sprintf(s_ln,"SELECT A_BITMAP FROM %s WHERE A_INDEX=:a AND SCP_NBR=:b \
              FOR UPDATE OF A_BITMAP",tab);
    EXEC SQL PREPARE S FROM :s_ln;
    if (sqlca.sqlcode)
    {TRACE(""<<s_ln);
    TRACE(""<<sqlca.sqlerrm.sqlerrmc);
    EXEC SQL DECLARE C_FREE_RI CURSOR FOR S;
    if (sqlca.sqlcode) {TRACE("DECLARE C_FREE_RI : "<<sqlca.sqlerrm.sqlerrmc)};
    memset(s_ln,0,800);
    sprintf(s_ln,"UPDATE %s SET A_BITMAP=:a WHERE A_INDEX=:b AND SCP_NBR=:c",
         tab);
    EXEC SQL PREPARE S FROM :s_ln;
    EXEC SQL EXECUTE S USING :bitmap,:rand_ind,:scp;
    switch(sqlca.sqlcode)
    {case 0: /* FOUND */
    (4)Trace tools:
    select SQL_TEXT from v$sql where HASH_VALUE=(select SQL_HASH_VALUE from v$session where process=10775);
    select SQL_TEXT from v$sql where HASH_VALUE=(select PREV_HASH_VALUE from v$session where process=10775);
    select XIDUSN,object_id,locked_mode from v$locked_object where object_id =
    (select l.object_id from v$locked_object l,v$session s where s.sid=l.session_id and s.process=10775);
    select s1.SEQ#,s1.P1,s1.P1TEXT,s1.P2,s1.P2TEXT,s1.P3,s1.P3TEXT,s1.EVENT,e.PARAMETER1,e.PARAMETER2,e.PARAMETER3,s1.WAIT_TIME,s1.SECONDS_IN_WAIT,s1.STATE from
    v$session_wait s1,v$session s2,v$event_name e where s1.sid=s2.sid and  e.name=s1.EVENT and s2.process=10775;
    (5)Trace info:
    SQL> start P6-3.sql1
    SQL_TEXT                                                                                           
    SELECT "A1"."A_BITMAP" FROM "F_TRDATA" "A1" WHERE "A1"."A_INDEX"=:A AND "A1"."SCP_NBR"=:B FOR UPDATE
    OF A1."A_BITMAP"                                                                                  
    SELECT "A1"."A_BITMAP" FROM "F_TRDATA" "A1" WHERE "A1"."A_INDEX"=:A AND "A1"."SCP_NBR"=:B FOR UPDATE
    OF A1."A_BITMAP"                                                                                  
    SQL_TEXT                                                                                           
    SELECT "A1"."A_BITMAP" FROM "F_TRDATA" "A1" WHERE "A1"."A_INDEX"=:A AND "A1"."SCP_NBR"=:B FOR UPDATE
    OF A1."A_BITMAP"                                                                                  
    SELECT "A1"."A_BITMAP" FROM "F_TRDATA" "A1" WHERE "A1"."A_INDEX"=:A AND "A1"."SCP_NBR"=:B FOR UPDATE
    OF A1."A_BITMAP"                                                                                  
          SEQ#         P1 P1TEXT                                                                   P2  
    P2TEXT                                                                   P3                        
    P3TEXT                                                                                             
    EVENT                                                                                              
    PARAMETER1                                                                                         
    PARAMETER2                                                                                         
    PARAMETER3                                                        WAIT_TIME SECONDS_IN_WAIT        
    STATE                                                                                              
          1897 1413697536 driver id                                                                 1  
          SEQ#         P1 P1TEXT                                                                   P2  
    P2TEXT                                                                   P3                        
    P3TEXT                                                                                             
    EVENT                                                                                              
    PARAMETER1                                                                                         
    PARAMETER2                                                                                         
    PARAMETER3                                                        WAIT_TIME SECONDS_IN_WAIT        
    STATE                                                                                              
    #bytes                                                                    0                        
          SEQ#         P1 P1TEXT                                                                   P2  
    P2TEXT                                                                   P3                        
    P3TEXT                                                                                             
    EVENT                                                                                              
    PARAMETER1                                                                                         
    PARAMETER2                                                                                         
    PARAMETER3                                                        WAIT_TIME SECONDS_IN_WAIT        
    STATE                                                                                              
          SEQ#         P1 P1TEXT                                                                   P2  
    P2TEXT                                                                   P3                        
    P3TEXT                                                                                             
    EVENT                                                                                              
    PARAMETER1                                                                                         
    PARAMETER2                                                                                         
    PARAMETER3                                                        WAIT_TIME SECONDS_IN_WAIT        
    STATE                                                                                              
    SQL*Net message from client                                                                        
          SEQ#         P1 P1TEXT                                                                   P2  
    P2TEXT                                                                   P3                        
    P3TEXT                                                                                             
    EVENT                                                                                              
    PARAMETER1                                                                                         
    PARAMETER2                                                                                         
    PARAMETER3                                                        WAIT_TIME SECONDS_IN_WAIT        
    STATE                                                                                              
    driver id                                                                                          
          SEQ#         P1 P1TEXT                                                                   P2  
    P2TEXT                                                                   P3                        
    P3TEXT                                                                                             
    EVENT                                                                                              
    PARAMETER1                                                                                         
    PARAMETER2                                                                                         
    PARAMETER3                                                        WAIT_TIME SECONDS_IN_WAIT        
    STATE                                                                                              
    #bytes                                                                                             
          SEQ#         P1 P1TEXT                                                                   P2  
    P2TEXT                                                                   P3                        
    P3TEXT                                                                                             
    EVENT                                                                                              
    PARAMETER1                                                                                         
    PARAMETER2                                                                                         
    PARAMETER3                                                        WAIT_TIME SECONDS_IN_WAIT        
    STATE                                                                                              
                                                                              0          197725        
          SEQ#         P1 P1TEXT                                                                   P2  
    P2TEXT                                                                   P3                        
    P3TEXT                                                                                             
    EVENT                                                                                              
    PARAMETER1                                                                                         
    PARAMETER2                                                                                         
    PARAMETER3                                                        WAIT_TIME SECONDS_IN_WAIT        
    STATE                                                                                              
    WAITING                                                                                            
          SEQ#         P1 P1TEXT                                                                   P2  
    P2TEXT                                                                   P3                        
    P3TEXT                                                                                             
    EVENT                                                                                              
    PARAMETER1                                                                                         
    PARAMETER2                                                                                         
    PARAMETER3                                                        WAIT_TIME SECONDS_IN_WAIT        
    STATE                                                                                              
    SQL> spool off
    SQL> start P6-4.sql1
    SQL_TEXT                                                                                           
    UPDATE "F_TRDATA" "A1" SET "A_BITMAP" = :A WHERE "A1"."A_INDEX"=:B AND "A1"."SCP_NBR"=:C           
    UPDATE "F_TRDATA" "A1" SET "A_BITMAP" = :A WHERE "A1"."A_INDEX"=:B AND "A1"."SCP_NBR"=:C           
    UPDATE "F_TRDATA" "A1" SET "A_BITMAP" = :A WHERE "A1"."A_INDEX"=:B AND "A1"."SCP_NBR"=:C           
    SQL_TEXT                                                                                           
    UPDATE "F_TRDATA" "A1" SET "A_BITMAP" = :A WHERE "A1"."A_INDEX"=:B AND "A1"."SCP_NBR"=:C           
    UPDATE "F_TRDATA" "A1" SET "A_BITMAP" = :A WHERE "A1"."A_INDEX"=:B AND "A1"."SCP_NBR"=:C           
    UPDATE "F_TRDATA" "A1" SET "A_BITMAP" = :A WHERE "A1"."A_INDEX"=:B AND "A1"."SCP_NBR"=:C           
          SEQ# EVENT                                                                                   
    PARAMETER1                                                                                         
    PARAMETER2                                                                                         
    PARAMETER3                                                        WAIT_TIME SECONDS_IN_WAIT        
    STATE                                                                                              
           657 SQL*Net message from client                                                             
    driver id                                                                                          
    #bytes                                                                                             
          SEQ# EVENT                                                                                   
    PARAMETER1                                                                                         
    PARAMETER2                                                                                         
    PARAMETER3                                                        WAIT_TIME SECONDS_IN_WAIT        
    STATE                                                                                              
                                                                              0          311573        
    WAITING                                                                                            
    SQL> spool off
    (6)We found no locked sessions, and the proecess was hanged when it executed SELECT and UPDATE command. However, the system CPU traffic and I/O traffic was not high.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

    up?
    up ... in the sky?
    up ... my shirt sleeve?
    up ... above the streets and houses, rainbow's flying high, everyone can see a rainbow, in the sky.... paint the whole world with a RAINBOW!
    up ... yours?

  • Partitioned nested table error while dropping one partition

    All,
    I created a partitioned table which is also a nested table as you can see below. I got FK constraint error while attempting to drop a partition, however, I could not find the FK in order to disable it since it's underlying table emp_list_p which is not visiable to applications. How could I drop the partition in this case?
    Thanks,
    Jianhui
    SQL>desc emp_t
    Name Null? Type
    ENO NUMBER
    ENAME VARCHAR2(30)
    SAL NUMBER
    SQL>desc emp_list_t
    emp_list_t TABLE OF EMP_T
    Name Null? Type
    ENO NUMBER
    ENAME VARCHAR2(30)
    SAL NUMBER
    SQL>l
    1 create table dept_p
    2 (dno number,
    3 dname varchar2(30),
    4 emplist emp_list_t )
    5 NESTED TABLE emplist store as emp_list_p
    6 partition by range (dno)
    7 (
    8 partition p1 values less than (2),
    9 partition p2 values less than (3)
    10* )
    SQL>/
    Table created.
    SQL>insert into dept_p (select * from dept);
    2 rows created.
    SQL>select * from dept_p;
    DNO DNAME
    EMPLIST(ENO, ENAME, SAL)
    1 HR
    EMP_LIST_T(EMP_T(1, 'scott', 1000), EMP_T(2, 'brain', 2000))
    2 SALES
    EMP_LIST_T(EMP_T(3, 'frank', 800))
    2 rows selected.
    SQL>alter table dept_p drop partition p1;
    alter table dept_p drop partition p1
    ERROR at line 1:
    ORA-02266: unique/primary keys in table referenced by enabled foreign keys
    SQL>l
    1 select constraint_name, constraint_type, table_name
    2 from user_constraints
    3 where r_constraint_name=(select constraint_name
    4* from user_constraints where table_name='DEPT_P' and constraint_type in ('P','U'))
    SQL>/
    no rows selected

    SQL> create type emp_t as object(
      2  ENO NUMBER,
      3  ENAME VARCHAR2(30),
      4  SAL NUMBER)
      5  /
    Type created.
    SQL> create type emp_list_t as table of emp_t;
      2  /
    Type created.
    SQL> desc emp_list_t
    emp_list_t TABLE OF EMP_T
    Name                                      Null?    Type
    ENO                                                NUMBER
    ENAME                                              VARCHAR2(30)
    SAL                                                NUMBER
    SQL> create table dept_p
      2  (dno number,
      3  dname varchar2(30),
      4  emplist emp_list_t )
      5  NESTED TABLE emplist store as emp_list_p
      6  partition by range (dno)
      7   (
      8   partition p1 values less than (2),
      9   partition p2 values less than (3)
    10   )
    11  /
    Table created.
    SQL> insert into dept_p values(1, 'HR',
      2  EMP_LIST_T(EMP_T(1, 'scott', 1000), EMP_T(2, 'brain', 2000)));
    1 row created.
    SQL>
    SQL> insert into dept_p values(2, 'SALES',EMP_LIST_T(EMP_T(3, 'frank', 800)));
    1 row created.
    SQL> select * from dept_p;
           DNO DNAME
    EMPLIST(ENO, ENAME, SAL)
             1 HR
    EMP_LIST_T(EMP_T(1, 'scott', 1000), EMP_T(2, 'brain', 2000))
             2 SALES
    EMP_LIST_T(EMP_T(3, 'frank', 800))
    SQL> alter table dept_p drop partition p1;
    alter table dept_p drop partition p1
    ERROR at line 1:
    ORA-02266: unique/primary keys in table referenced by enabled foreign keys
    SQL> select constraint_name,table_name,constraint_type from user_constraints
      2  where table_name = 'DEPT_P';
    CONSTRAINT_NAME                TABLE_NAME                     C
    SYS_C008224                    DEPT_P                         U
    SQL> select index_name from user_constraints
      2  where table_name = 'DEPT_P';
    INDEX_NAME
    SYS_C008224
    SQL> select index_name,column_name from user_ind_columns
      2  where index_name = 'SYS_C008224';
    INDEX_NAME                     COLUMN_NAME
    SYS_C008224                    EMPLIST
    SQL>
    SQL> disconnect
    Disconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.4.0 - Production
    With the Partitioning, OLAP and Data Mining options
    If you look closely, there is a unique index on dept_p.  Oracle does not advertise it.
    One of the options is that you may have to delete the rows in the partition first,
    then drop the partition.

  • Getting error while compiling this pl/sql code

    Hi,
    I am trying to execute the below block of pl/sql code and i encountering an error. i tried all possible combination of paranthesis and quotes. still giving error. can someone please help?
    IF inserting THEN
    pk_imdb_audit.p_ins_characteristic_a_t
    (in_'||rpad(column_name,35,' ')||'=> pk_imdb_audit.v_action_inserting,'
    WHEN max_col = column_id THEN
    in_'||rpad(column_name,35,' ')||'=> '||lower(in_col_value)||');'
    ELSE
    ' in_'||rpad(column_name,35,' ')||'=> '||lower(in_col_value)||','
    END text,
    table_name,
    column_id,
    2 disp_ord
    error snapshot:-
    ORA-06550: line 14, column 14:
    PLS-00103: Encountered the symbol "||rpad(column_name,35," when expecting one of the following:
    . ( ) , * @ % & | = - + < / > at in is mod remainder not
    range rem => .. <an exponent (**)> <> or != or ~= >= <= <>
    and or like LIKE2_ LIKE4_ LIKEC_ as between from using ||
    multiset member SUBMULTISET_
    The symbol "( was inserted before "||rpad(column_name,35," to continue.
    ORA-06550: line 15, column 13:
    PLS-00103: Encountered the symbol "WHEN" when expecting one of th

    Hi,
    here is a 'parseable' version of your query, but there is numerous ways to improve what you want to do (not sure even if the query is giving you what you're expecting from it):
    SELECT text
    FROM   (SELECT (CASE
                       WHEN min_col = max_col THEN    'CREATE OR REPLACE TRIGGER '
                                                   || SUBSTR(column_name,
                                                             1,
                                                             4
                                                   || 'aud
    AFTER INSERT
    OR UPDATE
    OF '
                                                   || column_name
                                                   || ',
    OR DELETE ON imdb.'
                                                   || table_name
                                                   || '
    FOR EACH ROW'
                       ELSE(CASE
                               WHEN min_col = column_id THEN    'CREATE OR REPLACE TRIGGER '
                                                             || SUBSTR(column_name,
                                                                       1,
                                                                       4
                                                             || 'aud
    AFTER INSERT
    OR UPDATE
    OF '
                                                             || column_name
                                                             || ','
                               ELSE(CASE
                                       WHEN max_col = column_id THEN    ' '
                                                                     || column_name
                                                                     || '
    OR DELETE ON imdb.'
                                                                     || table_name
                                                                     || '
    FOR EACH ROW'
                                       ELSE(CASE
                                               WHEN column_id IS NULL THEN    'CREATE OR REPLACE TRIGGER '
                                                                           || SUBSTR
                                                                                 (column_name,
                                                                                  1,
                                                                                  4
                                                                           || 'aud
    AFTER INSERT
    OR UPDATE
    OR DELETE ON imdb.'
                                                                           || table_name
                                               ELSE    ' '
                                                    || column_name
                                                    || ','
                                            END
                                    END
                            END
                    END
                   ) text,
                   table_name1 table_name,
                   column_id,
                   1 disp_ord
            FROM   (SELECT LOWER(REPLACE(column_name,
                                         'O_',
                                        )) column_name,                   /*changing O to O_*/
                           LOWER(REPLACE(t.table_name,
                                         '_A_',
                                        )) table_name,
                           LOWER(t.table_name) table_name1,
                           c.column_id,
                           MIN(column_id) OVER(PARTITION BY c.table_name) min_col,
                           MAX(column_id) OVER(PARTITION BY c.table_name) max_col
                    FROM   all_tab_columns c,
                           (SELECT object_name table_name
                            FROM   all_objects
                            WHERE  TRUNC(created) = TRUNC(SYSDATE)
                            AND    object_name = 'CHARACTERISTIC_A_T') t
    --AND object_name LIKE 'IMDB/_A/_%' ESCAPE '/') t /*commented this line for testing*/
                    WHERE  c.table_name(+) = t.table_name
                    AND    SUBSTR(column_name(+),
                                  1,
                                  2
                                 ) = 'O_'))
              /*changed the substring condition to match new changes*/
    UNION ALL
    SELECT (CASE
               WHEN min_col = column_id THEN    'DECLARE
    BEGIN
    IF inserting THEN
    pk_imdb_audit.p_ins_characteristic_a_t
    (in_'
                                             || RPAD(column_name,
                                                     35,
                                             || '=> pk_imdb_audit.v_action_inserting,'
               ELSE(CASE
                       WHEN max_col = column_id THEN    'in_'
                                                     || RPAD(column_name,
                                                             35,
                                                     || '=> '
                                                     || LOWER(in_col_value)
                                                     || ');'
                       ELSE    ' in_'
                            || RPAD(column_name,
                                    35,
                            || '=> '
                            || LOWER(in_col_value)
                            || ','
                    END
            END
           ) text /*,
           table_name,
           column_id,
           2 disp_ord*/
    FROM   (SELECT table_name,
                   column_name,
                   column_id,
                   min_col,
                   max_col,
                   in_col_value,
                   trg_header,
                      'in_'
                   || RPAD(column_name,
                           35,
                   || '=> '
                   || LOWER(in_col_value)
                   || ',' in_col
            FROM   (SELECT   LOWER(c.column_name) column_name,
                             LOWER(c.table_name) table_name,
                             c.column_id,
                             (CASE
                                 WHEN SUBSTR(column_name,
                                             1,
                                             2
                                            ) = 'N_' THEN
                                   /*changed the substring condition to match the new change*/
                                                            ':NEW.'
                                                         || REPLACE
                                                               (column_name,
                                                                'N_',
                                                                'N_'
                                            /*changed the condition to match new requirement*/
                                 WHEN SUBSTR(column_name,
                                             1,
                                             2
                                            ) = 'O_' THEN
                                   /*changed the substring condition to match the new change*/
                                                         'NULL'
                                 ELSE    ':NEW.'
                                      || REPLACE(column_name,
                                                 '_A_',
                              END
                             ) in_col_value,
                             LOWER(SUBSTR(column_name,
                                          1,
                                          3
                                         )) trg_header,
                             MIN(column_id) OVER(PARTITION BY c.table_name) min_col,
                             MAX(column_id) OVER(PARTITION BY c.table_name) max_col
                    FROM     all_tab_columns c
                    WHERE    c.table_name IN(
                                SELECT object_name
                                FROM   all_objects
                                WHERE  TRUNC(created) = TRUNC(SYSDATE)
                                AND    object_name = 'CHARACTERISTIC_A_T')
                    ORDER BY c.table_name,
                             c.column_id))

  • Index ignored in query??

    This is probably a basic question about indexes, thanks for your insights.
    I have a table VOUCHER with some columns including a TICKETNO column for which there is a primary key index, defined as follows:
    CREATE UNIQUE INDEX VOUCHER_PK ON VOUCHER (TICKETNO)
    The table contain approximately 20 million records.
    We are using Oracle 9i RAC on HP-UX 11.11
    I am running the following query, which runs for 20 minutes and then fails:
    Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
    With the Partitioning and Real Application Clusters options
    JServer Release 9.2.0.8.0 - Production
    SQL> select count(*) from VOUCHER
    2 where TICKETNO between 100000 and 100100
    3
    SQL> /
    select count(*) from VOUCHER
    ERROR at line 1:
    ORA-01555: snapshot too old: rollback segment number 741 with name
    "_SYSSMU741$" too small
    I am confused... Why counting 100 records with an indexed column takes so long and fail?

    Thanks for the feedback. I am going to run the ANALYZE suggestion tonight.
    Here are the results of the queries asked for:
    SELECT Table_Name, Status FROM User_Indexes WHERE Index_Name = 'VOUCHER_PK';
    OWNER TABLE_NAME STATUS
    SMVDBA VOUCHER VALID
    SELECT Column_Name FROM User_Ind_Columns WHERE Index_Name = 'VOUCHER_PK';
    COLUMN_NAME
    TICKETNO
    SELECT Last_Analyzed FROM User_Indexes WHERE Index_Name = 'VOUCHER_PK';
    LAST_ANAL
    SELECT Last_Analyzed FROM User_Tables WHERE Table_Name = 'VOUCHER';
    LAST_ANAL
    21-FEB-08
    EXPLAIN PLAN FOR
    select count(*) from VOUCHER
    where TICKETNO between 100000 and 100100;
    Explained
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY('', '', 'ALL'));
    PLAN_TABLE_OUTPUT
    | Id | Operation | Name | Rows | Bytes | Cost |
    | 0 | SELECT STATEMENT | | | | |
    | 1 | SORT AGGREGATE | | | | |
    | 2 | TABLE ACCESS FULL | VOUCHER | | | |
    Note: rule based optimization, PLAN_TABLE' is old version
    10 rows selected.
    EXPLAIN PLAN FOR
    select /*+ INDEX(V VOUCHER_PK) */ count(*) from VOUCHER V
    where TICKETNO between 100000 and 100100;
    Explained.
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY('', '', 'ALL'));
    PLAN_TABLE_OUTPUT
    | Id | Operation | Name | Rows | Bytes | Cost |
    | 0 | SELECT STATEMENT | | 1 | 18 | 5 |
    | 1 | SORT AGGREGATE | | 1 | 18 | |
    | 2 | INDEX FAST FULL SCAN| VOUCHER_PK | 83788 | 1472K| 5 |
    Note: cpu costing is off, PLAN_TABLE' is old version
    10 rows selected.

  • Child Query taking more time

    Dear Gurus/Masters/All,
    I request your valuble assistance in tuning one of my SQL.
    We are using oracle 10.2.04 version and OS is HP-UX 11.23(ia64) version
    In my production environment one SQL is taking more time to complete the task. According to EXPLAIN PLAN, i observed that one of it's WHERE condition execution is causing the issue.
    I took the explain plan of the WHERE condition which is causing the issue. It is going for full table scan to satisfy the criteria. But a normal index exists on this column.
    Main Query WHERE condition and Explain Plan.
    SELECT column list ....
    FROM
        SIEBEL.S_ADDR_PER T1,
        SIEBEL.S_PTY_PAY_PRFL T2,
        SIEBEL.S_INVLOC T3,
        SIEBEL.S_ORDER T4,
        SIEBEL.S_ORG_EXT T5,
        SIEBEL.S_POSTN T6,
        SIEBEL.S_PARTY T7,
        SIEBEL.S_PROJ T8,
        SIEBEL.S_CON_ADDR T9,
        SIEBEL.S_ORG_EXT T10,
        SIEBEL.S_USER T11,
        SIEBEL.S_DOC_QUOTE T12,
        SIEBEL.S_ACCNT_POSTN T13,
        SIEBEL.S_INS_CLAIM T14,
        SIEBEL.S_USER T15,
        SIEBEL.S_ORG_EXT T16,
        SIEBEL.S_ASSET T17,
        SIEBEL.S_ORDER_TNTX T18,
        SIEBEL.S_ORG_EXT_TNTX T19,
        SIEBEL.S_PERIOD T20,
        SIEBEL.S_DEPOSIT_TNT T21,
        SIEBEL.S_ADDR_PER T22,
        SIEBEL.S_PAYMENT_TERM T23,
        SIEBEL.S_ORG_EXT_X T24,
        SIEBEL.S_ORG_EXT T25,
        SIEBEL.S_INSCLM_ELMNT T26,
        SIEBEL.S_INVOICE T27
    WHERE
       T25.BU_ID = T10.PAR_ROW_ID (+) AND
       T26.INSCLM_ID = T14.ROW_ID (+) AND
       T27.ELEMENT_ID = T26.ROW_ID (+) AND
       T27.LAST_UPD_BY = T15.PAR_ROW_ID (+) AND
       T4.QUOTE_ID = T12.ROW_ID (+) AND
       T3.CG_ASSSET_ID = T17.ROW_ID (+) AND
       T27.BL_ADDR_ID = T22.ROW_ID (+) AND
       T8.BU_ID = T5.PAR_ROW_ID (+) AND
       T27.PER_PAY_PRFL_ID = T2.ROW_ID (+) AND
       T27.REMIT_ORG_EXT_ID = T16.PAR_ROW_ID (+) AND
       T27.PROJ_ID = T8.ROW_ID (+) AND
       T27.BL_PERIOD_ID = T20.ROW_ID (+) AND
       T27.PAYMENT_TERM_ID = T23.ROW_ID (+) AND
       T12.BU_ID = T19.PAR_ROW_ID (+) AND
       T27.ACCNT_ID = T25.PAR_ROW_ID (+) AND
       T27.ORDER_ID = T18.ROW_ID (+) AND
       T4.SRC_INVLOC_ID = T3.ROW_ID (+) AND
       T27.ORDER_ID = T4.ROW_ID (+) AND
       T27.ACCNT_ID = T24.PAR_ROW_ID (+) AND
       T18.PR_DEPOSIT_ID = T21.ROW_ID (+) AND
       T27.BL_ADDR_ID = T9.ADDR_PER_ID (+) AND T27.ACCNT_ID = T9.ACCNT_ID (+) AND
       T27.BL_ADDR_ID = T1.ROW_ID (+) AND
       T25.PR_POSTN_ID = T13.POSITION_ID (+) AND T25.ROW_ID = T13.OU_EXT_ID (+) AND
       T13.POSITION_ID = T7.ROW_ID (+) AND
       T13.POSITION_ID = T6.PAR_ROW_ID (+) AND
       T6.PR_EMP_ID = T11.PAR_ROW_ID (+) AND
       (T27.INVC_TYPE_CD = :1)
    ORDER BY
       T27.INVC_DT;
    Explained.
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    Plan hash value: 2576210427
    | Id  | Operation                                              | Name              | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT                                       |                   |    39M|    71G|       |   624M  (1)|278:42:59 |
    |   1 |  SORT ORDER BY                                         |                   |    39M|    71G|   150G|   624M  (1)|278:42:59 |
    |   2 |   NESTED LOOPS OUTER                                   |                   |    39M|    71G|       |   610M  (1)|272:11:24 |
    |   3 |    NESTED LOOPS OUTER                                  |                   |    39M|    70G|       |   515M  (1)|229:48:41 |
    |   4 |     NESTED LOOPS OUTER                                 |                   |    39M|    69G|       |   483M  (1)|215:41:04 |
    |   5 |      NESTED LOOPS OUTER                                |                   |    39M|    68G|       |   483M  (1)|215:41:04 |
    |   6 |       NESTED LOOPS OUTER                               |                   |    39M|    67G|       |   483M  (1)|215:41:04 |
    |   7 |        NESTED LOOPS OUTER                              |                   |    39M|    66G|       |   406M  (1)|181:17:50 |
    |   8 |         NESTED LOOPS OUTER                             |                   |    39M|    65G|       |   343M  (1)|153:12:57 |
    |   9 |          NESTED LOOPS OUTER                            |                   |    39M|    64G|       |   311M  (1)|139:04:56 |
    |  10 |           NESTED LOOPS OUTER                           |                   |    39M|    63G|       |   185M  (1)| 82:37:56 |
    |  11 |            NESTED LOOPS OUTER                          |                   |    39M|    54G|       |   108M  (1)| 48:11:29 |
    |  12 |             NESTED LOOPS OUTER                         |                   |    39M|    53G|       |   108M  (1)| 48:11:29 |
    |  13 |              NESTED LOOPS OUTER                        |                   |    39M|    51G|       |    76M  (1)| 34:03:51 |
    |  14 |               NESTED LOOPS OUTER                       |                   |    39M|    49G|       |    76M  (1)| 34:03:51 |
    |  15 |                NESTED LOOPS OUTER                      |                   |    39M|    46G|       |    76M  (1)| 34:03:51 |
    |  16 |                 NESTED LOOPS OUTER                     |                   |    39M|    44G|       |    76M  (1)| 34:03:51 |
    |  17 |                  NESTED LOOPS OUTER                    |                   |    39M|    40G|       |    65M  (1)| 29:25:49 |
    |  18 |                   NESTED LOOPS OUTER                   |                   |    39M|    39G|       |    65M  (1)| 29:25:49 |
    |  19 |                    NESTED LOOPS OUTER                  |                   |    39M|    38G|       |    65M  (1)| 29:25:49 |
    |  20 |                     NESTED LOOPS OUTER                 |                   |    39M|    34G|       |    65M  (1)| 29:17:44 |
    |  21 |                      NESTED LOOPS OUTER                |                   |    39M|    32G|       |    65M  (1)| 29:17:08 |
    |  22 |                       NESTED LOOPS OUTER               |                   |    39M|    31G|       |    65M  (1)| 29:09:04 |
    |  23 |                        NESTED LOOPS OUTER              |                   |    39M|    30G|       |  2043K  (9)| 00:54:42 |
    |  24 |                         NESTED LOOPS OUTER             |                   |    39M|    30G|       |  2043K  (9)| 00:54:42 |
    |  25 |                          NESTED LOOPS OUTER            |                   |    39M|    25G|       |  2015K  (7)| 00:53:57 |
    |  26 |                           NESTED LOOPS OUTER           |                   |    39M|    22G|       |  2015K  (7)| 00:53:57 |
    |  27 |                            NESTED LOOPS OUTER          |                   |    39M|    16G|       |  2015K  (7)| 00:53:57 |
    |* 28 |                             TABLE ACCESS FULL          | S_INVOICE         |    39M|     9G|       |  2015K  (7)| 00:53:57 |
    |  29 |                             TABLE ACCESS BY INDEX ROWID| S_PROJ            |     1 |   188 |       |     1   (0)| 00:00:01 |
    |* 30 |                              INDEX UNIQUE SCAN         | S_PROJ_P1         |     1 |       |       |     1   (0)| 00:00:01 |
    |  31 |                            TABLE ACCESS BY INDEX ROWID | S_PAYMENT_TERM    |     1 |   156 |       |     1   (0)| 00:00:01 |
    |* 32 |                             INDEX UNIQUE SCAN          | S_PAYMENT_TERM_P1 |     1 |       |       |     1   (0)| 00:00:01 |
    |  33 |                           TABLE ACCESS BY INDEX ROWID  | S_INSCLM_ELMNT    |     1 |    77 |       |     1   (0)| 00:00:01 |
    |* 34 |                            INDEX UNIQUE SCAN           | S_INSCLM_ELMNT_P1 |     1 |       |       |     1   (0)| 00:00:01 |
    |  35 |                          TABLE ACCESS BY INDEX ROWID   | S_INS_CLAIM       |     1 |   134 |       |     1   (0)| 00:00:01 |
    |* 36 |                           INDEX UNIQUE SCAN            | S_INS_CLAIM_P1    |     1 |       |       |     1   (0)| 00:00:01 |
    |  37 |                         TABLE ACCESS BY INDEX ROWID    | S_PERIOD          |     1 |    19 |       |     1   (0)| 00:00:01 |
    |* 38 |                          INDEX UNIQUE SCAN             | S_PERIOD_P1       |     1 |       |       |     1   (0)| 00:00:01 |
    |  39 |                        TABLE ACCESS BY INDEX ROWID     | S_USER            |     1 |    25 |       |     2   (0)| 00:00:01 |
    |* 40 |                         INDEX UNIQUE SCAN              | S_USER_U2         |     1 |       |       |     1   (0)| 00:00:01 |
    |  41 |                       TABLE ACCESS BY INDEX ROWID      | S_ORDER_TNTX      |     1 |    26 |       |     2   (0)| 00:00:01 |
    |* 42 |                        INDEX UNIQUE SCAN               | S_ORDER_TNTX_P1   |     1 |       |       |     1   (0)| 00:00:01 |
    |  43 |                      TABLE ACCESS BY INDEX ROWID       | S_DEPOSIT_TNT     |     1 |    45 |       |     1   (0)| 00:00:01 |
    |* 44 |                       INDEX UNIQUE SCAN                | S_DEPOSIT_TNT_P1  |     1 |       |       |     1   (0)| 00:00:01 |
    |  45 |                     TABLE ACCESS BY INDEX ROWID        | S_ORDER           |     1 |   101 |       |     2   (0)| 00:00:01 |
    |* 46 |                      INDEX UNIQUE SCAN                 | S_ORDER_P1        |     1 |       |       |     1   (0)| 00:00:01 |
    |  47 |                    TABLE ACCESS BY INDEX ROWID         | S_INVLOC          |     1 |    47 |       |     1   (0)| 00:00:01 |
    |* 48 |                     INDEX UNIQUE SCAN                  | S_INVLOC_P1       |     1 |       |       |     1   (0)| 00:00:01 |
    |  49 |                   TABLE ACCESS BY INDEX ROWID          | S_DOC_QUOTE       |     1 |    21 |       |     1   (0)| 00:00:01 |
    |* 50 |                    INDEX UNIQUE SCAN                   | S_DOC_QUOTE_P1    |     1 |       |       |     1   (0)| 00:00:01 |
    |* 51 |                  TABLE ACCESS FULL                     | S_ORG_EXT_TNTX    |     1 |    94 |       |     0   (0)| 00:00:01 |
    |  52 |                 TABLE ACCESS BY INDEX ROWID            | S_PTY_PAY_PRFL    |     1 |    74 |       |     1   (0)| 00:00:01 |
    |* 53 |                  INDEX UNIQUE SCAN                     | S_PTY_PAY_PRFL_P1 |     1 |       |       |     1   (0)| 00:00:01 |
    |  54 |                TABLE ACCESS BY INDEX ROWID             | S_ADDR_PER        |     1 |    84 |       |     2   (0)| 00:00:01 |
    |* 55 |                 INDEX UNIQUE SCAN                      | S_ADDR_PER_P1     |     1 |       |       |     1   (0)| 00:00:01 |
    |  56 |               TABLE ACCESS BY INDEX ROWID              | S_ADDR_PER        |     1 |    57 |       |     1   (0)| 00:00:01 |
    |* 57 |                INDEX UNIQUE SCAN                       | S_ADDR_PER_P1     |     1 |       |       |     1   (0)| 00:00:01 |
    |  58 |              TABLE ACCESS BY INDEX ROWID               | S_ORG_EXT         |     1 |    32 |       |     1   (0)| 00:00:01 |
    |* 59 |               INDEX UNIQUE SCAN                        | S_ORG_EXT_U3      |     1 |       |       |     1   (0)| 00:00:01 |
    |  60 |             TABLE ACCESS BY INDEX ROWID                | S_ORG_EXT         |     1 |    32 |       |     1   (0)| 00:00:01 |
    |* 61 |              INDEX UNIQUE SCAN                         | S_ORG_EXT_U3      |     1 |       |       |     1   (0)| 00:00:01 |
    |  62 |            TABLE ACCESS BY INDEX ROWID                 | S_ORG_EXT         |     1 |   256 |       |     2   (0)| 00:00:01 |
    |* 63 |             INDEX UNIQUE SCAN                          | S_ORG_EXT_U3      |     1 |       |       |     1   (0)| 00:00:01 |
    |  64 |           TABLE ACCESS BY INDEX ROWID                  | S_ACCNT_POSTN     |     1 |    32 |       |     3   (0)| 00:00:01 |
    |* 65 |            INDEX RANGE SCAN                            | S_ACCNT_POSTN_U1  |     1 |       |       |     2   (0)| 00:00:01 |
    |  66 |          TABLE ACCESS BY INDEX ROWID                   | S_POSTN           |     1 |    21 |       |     1   (0)| 00:00:01 |
    |* 67 |           INDEX UNIQUE SCAN                            | S_POSTN_U2        |     1 |       |       |     1   (0)| 00:00:01 |
    |  68 |         TABLE ACCESS BY INDEX ROWID                    | S_USER            |     1 |    25 |       |     2   (0)| 00:00:01 |
    |* 69 |          INDEX UNIQUE SCAN                             | S_USER_U2         |     1 |       |       |     1   (0)| 00:00:01 |
    |  70 |        TABLE ACCESS BY INDEX ROWID                     | S_ORG_EXT         |     1 |    32 |       |     2   (0)| 00:00:01 |
    |* 71 |         INDEX UNIQUE SCAN                              | S_ORG_EXT_U3      |     1 |       |       |     1   (0)| 00:00:01 |
    |  72 |       TABLE ACCESS BY INDEX ROWID                      | S_ASSET           |     1 |    24 |       |     2   (0)| 00:00:01 |
    |* 73 |        INDEX UNIQUE SCAN                               | S_ASSET_P1        |     1 |       |       |     2   (0)| 00:00:01 |
    |  74 |      TABLE ACCESS BY INDEX ROWID                       | S_CON_ADDR        |     1 |    36 |       |     3   (0)| 00:00:01 |
    |* 75 |       INDEX RANGE SCAN                                 | S_CON_ADDR_U1     |     1 |       |       |     2   (0)| 00:00:01 |
    |* 76 |     INDEX UNIQUE SCAN                                  | S_PARTY_P1        |     1 |    12 |       |     1   (0)| 00:00:01 |
    |  77 |    TABLE ACCESS BY INDEX ROWID                         | S_ORG_EXT_X       |     1 |    37 |       |     2   (0)| 00:00:01 |
    |* 78 |     INDEX RANGE SCAN                                   | S_ORG_EXT_X_U1    |     1 |       |       |     2   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
      28 - filter("T27"."INVC_TYPE_CD"=:1)
      30 - access("T27"."PROJ_ID"="T8"."ROW_ID"(+))
      32 - access("T27"."PAYMENT_TERM_ID"="T23"."ROW_ID"(+))
      34 - access("T27"."ELEMENT_ID"="T26"."ROW_ID"(+))
      36 - access("T26"."INSCLM_ID"="T14"."ROW_ID"(+))
      38 - access("T27"."BL_PERIOD_ID"="T20"."ROW_ID"(+))
      40 - access("T27"."LAST_UPD_BY"="T15"."PAR_ROW_ID"(+))
      42 - access("T27"."ORDER_ID"="T18"."ROW_ID"(+))
      44 - access("T18"."PR_DEPOSIT_ID"="T21"."ROW_ID"(+))
      46 - access("T27"."ORDER_ID"="T4"."ROW_ID"(+))
      48 - access("T4"."SRC_INVLOC_ID"="T3"."ROW_ID"(+))
      50 - access("T4"."QUOTE_ID"="T12"."ROW_ID"(+))
      51 - filter("T12"."BU_ID"="T19"."PAR_ROW_ID"(+))
      53 - access("T27"."PER_PAY_PRFL_ID"="T2"."ROW_ID"(+))
      55 - access("T27"."BL_ADDR_ID"="T1"."ROW_ID"(+))
      57 - access("T27"."BL_ADDR_ID"="T22"."ROW_ID"(+))
      59 - access("T8"."BU_ID"="T5"."PAR_ROW_ID"(+))
      61 - access("T27"."REMIT_ORG_EXT_ID"="T16"."PAR_ROW_ID"(+))
      63 - access("T27"."ACCNT_ID"="T25"."PAR_ROW_ID"(+))
      65 - access("T25"."ROW_ID"="T13"."OU_EXT_ID"(+) AND "T25"."PR_POSTN_ID"="T13"."POSITION_ID"(+))
      67 - access("T13"."POSITION_ID"="T6"."PAR_ROW_ID"(+))
      69 - access("T6"."PR_EMP_ID"="T11"."PAR_ROW_ID"(+))
      71 - access("T25"."BU_ID"="T10"."PAR_ROW_ID"(+))
      73 - access("T3"."CG_ASSSET_ID"="T17"."ROW_ID"(+))
      75 - access("T27"."BL_ADDR_ID"="T9"."ADDR_PER_ID"(+) AND "T27"."ACCNT_ID"="T9"."ACCNT_ID"(+))
           filter("T27"."ACCNT_ID"="T9"."ACCNT_ID"(+))
      76 - access("T13"."POSITION_ID"="T7"."ROW_ID"(+))
      78 - access("T27"."ACCNT_ID"="T24"."PAR_ROW_ID"(+))
    117 rows selected.SQL> EXPLAIN PLAN FOR
    2 SELECT * FROM SIEBEL.S_INVOICE T27 WHERE T27.INVC_TYPE_CD=:1;
    Explained.
    SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
    PLAN_TABLE_OUTPUT
    Plan hash value: 1810797629
    | Id  | Operation         | Name      | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT  |           |    39M|     9G|  2016K  (8)| 00:53:59 |
    |*  1 |  TABLE ACCESS FULL| S_INVOICE |    39M|     9G|  2016K  (8)| 00:53:59 |
    Predicate Information (identified by operation id):
       1 - filter("T27"."INVC_TYPE_CD"=:1)
    13 rows selected.Edited by: KODS on Feb 13, 2013 1:08 PM

    Dear Ivan,
    Please find the details below.
    select * from dba_indexes where index_name = 'S_INVOICE_U1';
    OWNER                          INDEX_NAME                     INDEX_TYPE                  TABLE_OWNER                    TABLE_NAME                     TABLE_TYPE  UNIQUENESS COMPRESSION PREFIX_LENGTH TABLESPACE_NAME                INI_TRANS MAX_TRANS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE PCT_THRESHOLD INCLUDE_COLUMN FREELISTS FREELIST_GROUPS PCT_FREE LOGGING BLEVEL LEAF_BLOCKS DISTINCT_KEYS AVG_LEAF_BLOCKS_PER_KEY AVG_DATA_BLOCKS_PER_KEY CLUSTERING_FACTOR STATUS   NUM_ROWS SAMPLE_SIZE LAST_ANALYZED DEGREE                                   INSTANCES                                PARTITIONED TEMPORARY GENERATED SECONDARY BUFFER_POOL USER_STATS DURATION        PCT_DIRECT_ACCESS ITYP_OWNER                     ITYP_NAME                      PARAMETERS                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               GLOBAL_STATS DOMIDX_STATUS DOMIDX_OPSTATUS FUNCIDX_STATUS JOIN_INDEX IOT_REDUNDANT_PKEY_ELIM DROPPED
    SIEBEL                         S_INVOICE_U1                   NORMAL                      SIEBEL                         S_INVOICE                      TABLE       UNIQUE     DISABLED                  CRMSBL_AEM_INDEX                       2       255          65536                       1  2147483645                                                                           10 NO           3      902796     196739390                       1                       1         125598294 VALID    196739390   196739390 10-02-13      1                                        1                                        NO          N         N         N         DEFAULT     NO                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  YES                                                       NO         NO                      NO     
    select * from dba_ind_columns where index_name = 'S_INVOICE_U1' order by column_position;
    INDEX_OWNER                    INDEX_NAME                     TABLE_OWNER                    TABLE_NAME                     COLUMN_NAME                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      COLUMN_POSITION COLUMN_LENGTH CHAR_LENGTH DESCEND
    SIEBEL                         S_INVOICE_U1                   SIEBEL                         S_INVOICE                      INVC_NUM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       1           200          50 ASC    
    SIEBEL                         S_INVOICE_U1                   SIEBEL                         S_INVOICE                      INVC_TYPE_CD                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   2           120          30 ASC    
    SIEBEL                         S_INVOICE_U1                   SIEBEL                         S_INVOICE                      CONFLICT_ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    3            60          15 ASC    

  • User SYSTEM does not exist

    Hi there,
    Using the MDK:
    -I have set up my publication items
    -added them to my publication
    -used the packaging wizard to setup my application and attach it to the publication
    -used the Oracle Mobile administrator to create a user.
    -used the Oracle Mobile administrator to assign the user to the application.
    On Win32, I download the WIN32 Setup and run it with the user and password.
    It sets up the DMAgent, etc, and installs all of the oracle lite stuff into c:\mobileclient
    Next, I run MSYNC.EXE with the user's name. It completes successfully. What happens next is very strange:
    C:\Documents and Settings\allen>msql system/moogle@polite:tenchi_pman
    Oracle Lite MSQL Version 10.3.0.1.0
    Copyright (c) 1997, 2007, Oracle. All rights reserved.
    [POL-5246] user SYSTEM does not exist
    C:\Documents and Settings\allen>
    Has anyone encountered this?
    Thanks,
    Allen
    p.s. my environment details are as follows:
    Mobile Repository Configuration
    Operating System: Linux 2.6
    Oracle Database: 10.2.0.3.0
    Mobile Server Configuration (all the latest patches applied at this time)
    Mobile Server Install Type: Standalone
    Operating System: Microsoft Windows XP
    Mobile Server: 10.3.0.1.0
    Secure Socket Layer: No
    Part of Web Farm: No
    Java J2SE: 1.5.0_15
    Mobile Client Configuration
    Mobile Client Type: Windows 32
    Operating System: Microsoft Windows XP SP2
    Mobile Client: 10.3.0.1.0

    Is there a way for me to create the SYSTEM user in the Oracle Lite database, or is this error a symptom of a different problem?
    Tid=0f34, Statement Text:CREATE VIEW SYSTEM.CAT (TABLE_NAME, TABLE_TYPE) AS SELECT TABLE_NAME, TABLE_TYPE FROM SYSTEM."okClass" WHERE TABLE_TYPE IN ('TABLE', 'VIEW')
    Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_CONSTRAINTS (OWNER, CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, SEARCH_CONDITION, R_OWNER, R_CONSTRAINT_NAME, DELETE_RULE, STATUS, VALIDATED) AS SELECT OWNER, CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, SEARCH_CONDITION, R_OWNER, R_CONSTRAINT_NAME, DELETE_RULE, STATUS, VALIDATED FROM SYSTEM.POL__CONS
    Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_CONS_COLUMNS ( OWNER, CONSTRAINT_NAME, TABLE_NAME, COLUMN_NAME, POSITION) AS SELECT OWNER, CONSTRAINT_NAME, TABLE_NAME, COLUMN_NAME, POSITION FROM SYSTEM.POL__COLUSAGE
    Tid=0f34, Statement Text:CREATE VIEW SYSTEM.TABLE_PRIVILEGES ( OWNER, TABLE_NAME, GRANTOR, GRANTEE, GRANT_TYPE, GRANTABLE) AS SELECT OWNER, TABLE_NAME, GRANTOR, GRANTEE, GRANT_TYPE, GRANTABLE FROM SYSTEM.ALL_PRIVILEGES WHERE OBJECT_TYPE = 0
    Tid=0f34, Statement Text:CREATE VIEW SYSTEM.COLUMN_PRIVILEGES ( OWNER, TABLE_NAME, COLUMN_NAME, GRANTOR, GRANTEE, GRANT_TYPE, GRANTABLE) AS SELECT OWNER, TABLE_NAME, COLUMN_NAME, GRANTOR, GRANTEE, GRANT_TYPE, GRANTABLE FROM SYSTEM.ALL_PRIVILEGES WHERE OBJECT_TYPE = 5
    Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_VIEWS ( OWNER, VIEW_NAME, TEXT_LENGTH, TEXT) AS SELECT TABLE_SCH, TABLE_NAME, VIEW_LEN, VIEW_TEXT FROM SYSTEM."okClass" WHERE TABLE_TYPE IN ('VIEW')
    Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_TABLES ( OWNER, TABLE_NAME, TABLESPACE_NAME, CLUSTER_NAME, PCT_FREE, PCT_USED, INI_TRANS, MAX_TRANS, INITIAL_EXTENT, NEXT_EXTENT, MIN_EXTENTS, MAX_EXTENTS, PCT_INCREASE, BACKED_UP, NUM_ROWS, BLOCKS, EMPTY_BLOCKS, AVG_SPACE, CHAIN_CNT, AVG_ROW_LEN) AS SELECT TABLE_SCH, TABLE_NAME, CAST('OOT' AS VARCHAR(128)), CAST(NULL AS VARCHAR(128)), CAST(0 AS INTEGER), CAST(0 AS INTEGER), CAST(0 AS INTEGER), CAST(0 AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS VARCHAR(1)), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER) FROM SYSTEM."okClass" WHERE TABLE_TYPE IN ('TABLE')
    Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_TAB_COLUMNS ( OWNER, TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH, DATA_PRECISION, DATA_SCALE, NULLABLE, COLUMN_ID, DEFAULT_LENGTH, DATA_DEFAULT, NUM_DISTINCT, LOW_VALUE, HIGH_VALUE, IS_HIDDEN) AS SELECT COLUMN_SCH, TABLE_NAME, COLUMN_NAME, CASE TYPE_CODE WHEN -16 THEN 'NCLOB' WHEN -15 THEN 'CLOB' WHEN -14 THEN 'BLOB' WHEN -13 THEN CAST('LONG' AS VARCHAR(30)) WHEN -12 THEN 'NUMBER' WHEN -11 THEN 'ROWID' WHEN -10 THEN 'LONG RAW' WHEN -9 THEN 'RAW' WHEN -8 THEN 'TINYINT' WHEN -7 THEN 'LONG VARBINARY' WHEN -6 THEN 'VARBINARY' WHEN -5 THEN 'BINARY' WHEN -4 THEN 'BIGINT' WHEN -3 THEN 'LONG VARCHAR' WHEN -2 THEN 'REF' WHEN -1 THEN 'UNKNOWN' WHEN 1 THEN 'CHAR' WHEN 2 THEN 'NUMERIC' WHEN 3 THEN 'DECIMAL' WHEN 4 THEN 'INTEGER' WHEN 5 THEN 'SMALLINT' WHEN 6 THEN 'FLOAT' WHEN 7 THEN 'REAL' WHEN 8 THEN 'DOUBLE' WHEN 9 THEN CASE SUBTYPE_CODE WHEN 1 THEN CAST('DATE' AS VARCHAR(9)) WHEN 2 THEN 'TIME' WHEN 4 THEN 'TIMESTAMP' ELSE 'EMPTY' END WHEN 10 THEN 'INTERVAL' WHEN 12 THEN 'VARCHAR' WHEN 13 THEN 'VARCHAR2' WHEN 14 THEN 'BIT' ELSE 'EMPTY' END, CASE WHEN TYPE_CODE <> 9 THEN COL_PRECISION WHEN TYPE_CODE = 9 AND SUBTYPE_CODE = 1 THEN 8 WHEN TYPE_CODE = 9 AND SUBTYPE_CODE = 2 THEN 6 WHEN TYPE_CODE = 9 AND SUBTYPE_CODE = 4 THEN 15 ELSE CAST(NULL AS INTEGER) END, CASE WHEN TYPE_CODE NOT IN (-16, -15, -14, -13, -11, -10, -9, -7, -6, -5, -3, 1, 9, 12, 13) THEN COL_PRECISION ELSE CAST(NULL AS INTEGER) END, CASE WHEN TYPE_CODE IN (-12, 2, 3, 4, 5, 10) THEN COL_SCALE ELSE CAST(NULL AS INTEGER) END, CASE NULLABILITY WHEN 0 THEN CAST('N' AS VARCHAR(1)) ELSE 'Y' END, POSITION, CASE DEFAULT_LENGTH WHEN 0 THEN CAST(NULL AS INTEGER) ELSE DEFAULT_LENGTH END, CASE DEFAULT_LENGTH WHEN 0 THEN CAST(NULL AS VARCHAR(4096)) ELSE DATA_DEFAULT END, CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CASE ISHIDDEN WHEN 0 THEN CAST('N' AS VARCHAR(1)) ELSE 'Y' END FROM SYSTEM."okAttr" WHERE TABLE_TYPE IN ('TABLE', 'VIEW')
    Tid=0f34, Statement Text:CREATE VIEW SYSTEM.USER_OBJECTS ( OWNER, OBJECT_NAME, OBJECT_ID, OBJECT_TYPE, CREATED, LAST_DDL_TIME, CREATED_TIME, STATUS) AS SELECT SCHEMA_NAME, OBJECT_NAME, OBJECT_ID, CASE OBJECT_TYPE WHEN 0 THEN CAST('TABLE' AS VARCHAR(128)) WHEN 1 THEN 'VIEW' WHEN 2 THEN 'INDEX' WHEN 3 THEN 'SEQUENCE' ELSE 'SYNONYM' END, CAST(CREATED AS DATE), CAST(CREATED AS DATE), CAST(CAST(CREATED AS TIMESTAMP(0)) AS VARCHAR(128)), CAST('VALID' AS VARCHAR(128)) FROM SYSTEM.POL__ALLOBJ WHERE OBJECT_NAME NOT LIKE 'POL_%' AND SCHEMA_NAME IN (SELECT NAME FROM POL__SCHEMATA WHERE OWNER = USER)
    Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_USERS ( USERNAME, USER_ID, CREATED) AS SELECT USERNAME, USER_ID, CREATED FROM SYSTEM.POL__USERS
    Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_OBJECTS ( OWNER, OBJECT_NAME, OBJECT_TYPE, CREATED, STATUS) AS SELECT SCHEMA_NAME, OBJECT_NAME, CASE OBJECT_TYPE WHEN 0 THEN CAST('TABLE' AS VARCHAR(128)) WHEN 1 THEN 'VIEW' WHEN 2 THEN 'INDEX' WHEN 3 THEN 'SEQUENCE' ELSE 'SYNONYM' END, CAST(CREATED AS DATE), CAST('VALID' AS VARCHAR(128)) FROM SYSTEM.POL__ALLOBJ
    Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ACCESSIBLE_COLUMNS ( OWNER, TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH, DATA_PRECISION, DATA_SCALE, NULLABLE, COLUMN_ID, DEFAULT_LENGTH, DATA_DEFAULT, NUM_DISTINCT, LOW_VALUE, HIGH_VALUE) AS SELECT COLUMN_SCH, TABLE_NAME, COLUMN_NAME, CASE TYPE_CODE WHEN -4 THEN CAST('BIGINT' AS VARCHAR(128)) WHEN -3 THEN 'LONGVARCHAR' WHEN -2 THEN 'REF' WHEN -1 THEN 'UNKNOWN' WHEN 1 THEN 'CHAR' WHEN 2 THEN 'NUMERIC' WHEN 3 THEN 'DECIMAL' WHEN 4 THEN 'INTEGER' WHEN 5 THEN 'SMALLINT' WHEN 6 THEN 'FLOAT' WHEN 7 THEN 'REAL' WHEN 8 THEN 'DOUBLE' WHEN 9 THEN 'DATETIME' WHEN 10 THEN 'INTERVAL' WHEN 11 THEN 'VARCHAR' ELSE 'EMPTY' END, CASE WHEN TYPE_CODE IN (-3, 1, 11) THEN COL_PRECISION ELSE CAST(NULL AS INTEGER) END, CASE WHEN TYPE_CODE NOT IN (-3, 1, 11) THEN COL_PRECISION ELSE CAST(NULL AS INTEGER) END, CASE WHEN TYPE_CODE IN (2, 3, 4, 5, 9, 10) THEN COL_SCALE ELSE CAST(NULL AS INTEGER) END, CASE NULLABILITY WHEN 0 THEN CAST('N' AS VARCHAR(1)) ELSE 'Y' END, POSITION, CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER) FROM SYSTEM."okAttr" WHERE TABLE_TYPE IN ('TABLE', 'VIEW')
    Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_INDEXES ( OWNER, INDEX_NAME, TABLE_OWNER, TABLE_NAME, TABLE_TYPE, UNIQUENESS) AS SELECT SCHEMA_NAME, INDEX_NAME, TABLE_SCHEMA, TABLE_NAME, CAST('TABLE' AS VARCHAR(10)), IS_UNIQUE FROM SYSTEM.POL__INDICES
    Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_IND_COLUMNS ( INDEX_OWNER, INDEX_NAME, TABLE_OWNER, TABLE_NAME, COLUMN_NAME, COLUMN_POSITION) AS SELECT SCHEMA_NAME, INDEX_NAME, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, INDEX_POSITION FROM SYSTEM.POL__INDICESDT
    Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_COL_COMMENTS ( OWNER, TABLE_NAME, COLUMN_NAME, COMMENTS) AS SELECT COLUMN_SCH, TABLE_NAME, COLUMN_NAME, COLUMN_COMMENT FROM SYSTEM."okAttr" WHERE COLUMN_COMMENT IS NOT NULL
    Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_TAB_COMMENTS ( OWNER, TABLE_NAME, TABLE_TYPE, COMMENTS) AS SELECT TABLE_SCH, TABLE_NAME, TABLE_TYPE, TABLE_COMMENT FROM SYSTEM."okClass" WHERE TABLE_COMMENT IS NOT NULL
    Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_SYNONYMS ( OWNER, SYNONYM_NAME, TABLE_OWNER, TABLE_NAME, DB_LINK) AS SELECT OWNER, SYNONYM_NAME, TABLE_OWNER, TABLE_NAME, CAST('NULL' AS VARCHAR(128)) FROM SYSTEM.POL__SYNONYM
    Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_SEQUENCES ( SEQUENCE_OWNER, SEQUENCE_NAME, MIN_VALUE, MAX_VALUE, INCREMENT_BY) AS SELECT SCHEMA_NAME, SEQ_NAME, MIN_VALUE, MAX_VALUE, INC_BY FROM SYSTEM.POL__SEQ WHERE SEQ_NAME NOT LIKE 'POL_%'
    Tid=0f34, Statement Text:CREATE VIEW SYSTEM.DATABASE_PARAMETERS AS SELECT PARAMETER, VALUE FROM SYSTEM.POL__DATABASE_PARAMETERS
    Does anything look amiss with this oldb_trc.txt file?
    Allen

  • Weird sqlplus issue.

    Hello,
    Recently I came across a weird issues using sqlplus, SELECT statement when typed in uppercase using MAX() function says "table or view does not exists"
    e.g.
    SELECT MAX(COLUMN_NAME) FROM TABLE_NAME;
    When the above query typed with one lowercase character anywhere in the query then it works.
    Basically, Oracle thinks it as a new query then executes it, but not when typed as above.
    I'm using Oracle 11g Client and Oracle 10.2.0.5.0 as RDBMS server.
    Any idea, what could be an issue?
    Thx
    Kam

    SQL*Plus: Release 10.2.0.1.0 - Production on Fri Jul 1 11:02:24 2011
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
    With the Partitioning, Real Application Clusters, OLAP, Data Mining
    and Real Application Testing options
    SQL> select * from dual;
    D
    X
    SQL> select * from weird_table;
    select * from weird_table
    ERROR at line 1:
    ORA-00942: table or view does not exist
    SQL> desc weird_table;
    ERROR:
    ORA-04043: object weird_table does not exist
    SQL> desc dual;
    Name                                      Null?    Type
    DUMMY                                              VARCHAR2(1)
    SQL> Regards
    Raj

Maybe you are looking for