Wenn Sie irgendeine Art von IDE verwenden (zB Oracle SQL Developer, PL/SQL Entwickler von Allround Automations, Toad, etc), hat jeder von ihnen eine Möglichkeit den Plan für eine Aussage zu löschen - stöbern Sie in der Menüs und die Online-Hilfe.
Wenn Sie in SQL * Plus kommen können (versuchen Sie, "sql" in Ihrer befreundeten Befehlszeile einzugeben), können Sie autotrace einschalten, Ihre Anweisung ausführen und der Plan sollte gedruckt werden. Wie in
SQL> set autotrace on
SQL> select * from dept where deptno = 40;
DEPTNO DNAME LOC
---------- -------------- -------------
40 OPERATIONS BOSTON
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=1 Card=1 Bytes=18)
1 0 TABLE ACCESS (BY INDEX ROWID) OF 'DEPT' (Cost=1 Card=1 Bytes=18)
2 1 INDEX (UNIQUE SCAN) OF 'PK_DEPT' (UNIQUE)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
2 consistent gets
0 physical reads
0 redo size
499 bytes sent via SQL*Net to client
503 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
Dies setzt voraus, dass Ihre freundliche Nachbarschaft DBA die notwendigen Beschwörungen diese Funktion aktivieren durchgeführt hat. Wenn dies nicht geschehen ist, oder Sie wollen nur eine weitere Möglichkeit (tm), dies zu tun, versuchen Sie so etwas wie die folgenden, wobei man die Abfrage, die Sie interessieren:
SQL> EXPLAIN PLAN FOR select * from dept where deptno = 40;
Explained.
SQL> set linesize 132
SQL> SELECT * FROM TABLE(dbms_xplan.display);
PLAN_TABLE_OUTPUT
---------------------------------------------------------------------------------------
Plan hash value: 2852011669
---------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 20 | 1 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| DEPT | 1 | 20 | 1 (0)| 00:00:01 |
|* 2 | INDEX UNIQUE SCAN | PK_DEPT | 1 | | 0 (0)| 00:00:01 |
---------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("DEPTNO"=40)
14 rows selected.
teilen und genießen.
Sind Sie fragen, ob eine bestimmte Abfrage den Index verwendet, oder wenn es irgendwelche Anfragen, die jemals den Index verwenden? –
Ja ... Ich habe gefragt, ob überhaupt irgendwelche Abfragen einen bestimmten Index verwenden. Die Antwort von Robert scheint genau richtig zu sein :-) – Guddu