Regarding I am in for it now the contest is over. Well, I won. The fine young gentlemen have chosen August 31st as the day they will live up to their end of the bargain. The final myth was explained to them with the following
SQL> SET TRIMSPOOL ON
SQL> SET LINES 120
SQL> DROP TABLE TABLE1;
DROP TABLE TABLE1
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> DROP SEQUENCE TABLE1_PK_SEQ;
Sequence dropped.
SQL> CREATE SEQUENCE TABLE1_PK_SEQ CACHE 500;
Sequence created.
SQL> CREATE TABLE TABLE1 AS SELECT OBJECT_NAME,LAST_DDL_TIME,FLOOR(DBMS_RANDOM.VALUE(1,2)) DATA FROM ALL_OBJECTS;
Table created.
SQL> COMMIT;
Commit complete.
SQL> CREATE INDEX TABLE1IDX1 ON TABLE1 (DATA);
Index created.
SQL> BEGIN
2 DBMS_STATS.GATHER_TABLE_STATS(USER,'TABLE1',CASCADE =>TRUE);
3 END;
4 /
PL/SQL procedure successfully completed.
SQL> SET AUTOTRACE TRACEONLY ;
SQL> SET TIMING ON;
SQL> SELECT /*+INDEX (TABLE1 TABLE1IDX1) */ * FROM TABLE1 WHERE DATA=1;
50574 rows selected.
Elapsed: 00:00:00.52
Execution Plan
----------------------------------------------------------
Plan hash value: 809506743
------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 50574 | 1679K| 384 (2)| 00:00:05 |
| 1 | TABLE ACCESS BY INDEX ROWID| TABLE1 | 50574 | 1679K| 384 (2)| 00:00:05 |
|* 2 | INDEX RANGE SCAN | TABLE1IDX1 | 50574 | | 101 (2)| 00:00:02 |
------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("DATA"=1)
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
7106 consistent gets
0 physical reads
0 redo size
2463263 bytes sent via SQL*Net to client
37462 bytes received via SQL*Net from client
3373 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
50574 rows processed
SQL> SELECT * FROM TABLE1 WHERE DATA=1;
50574 rows selected.
Elapsed: 00:00:00.43
Execution Plan
----------------------------------------------------------
Plan hash value: 963482612
----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 50574 | 1679K| 68 (3)| 00:00:01 |
|* 1 | TABLE ACCESS FULL| TABLE1 | 50574 | 1679K| 68 (3)| 00:00:01 |
----------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("DATA"=1)
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
3638 consistent gets
0 physical reads
0 redo size
1548409 bytes sent via SQL*Net to client
37462 bytes received via SQL*Net from client
3373 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
50574 rows processed
SQL>
SQL> SPOOL OFF
They capitulated with almost no fight, they had run similar tests and scripts and had gone through the online information and come up with the same answers. I do feel for the fellows... well just a little :)
1 comment:
We want pics! We want pics!
Post a Comment