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 Bansalsaket 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 AdvanceYou 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> -
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. -
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 selectedSQL> 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 thHi,
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. -
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 PMDear 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 -
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.0Is 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 -
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
KamSQL*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
-
Hi all! I have a 6th gen ipod nano. I wanted to sync it to get some new music onto it, but my computer won't recognize it. I've tried restarting it and resetting it numerous times, both plugged into the computer and not. I've confirmed that both the
-
Main window data to be page protected in smartform
Hello Experts, I want to make Main window data to be page protected. But page Protection check box is in Noneditable mode . Please let me know, how to make main window data to be page protected. Regards Mohit
-
Need help with sed to fix migrated web site links (part II)
I thought I had this fixed, but I didn't, so starting over: I'm moving my web files from one host to another, and have backed up my directory called WEB into my user downloads folder. The site is dead simple, mostly links within the site, pages prim
-
Easiest way to find and remove duplicate files?
My wife is a photographer and she's terrible at file management. Consequently she has duplicate versions of images stashed all over her almost full hard drive. What is the easiest waty to find duplicates of files so that I can get rid of them? Any fr
-
WSM certificate errors 00066 & 00034
Hi, I created a cert in client, exported it and imported in server as follows: Client (JRE 160_21) keytool.exe -genkeypair -alias client_alias -keyalg "RSA" -sigalg "SHA1withRSA" -dname "cn=a, ou=b, o=c, c=in" -keypass password -keystore client.jks -