【索引】oracle查詢使用索引和不使用索引的比較
前言:關於查詢走不走索引裡面有很多的東西,也分為很多種情況。這裡只是簡單的一個比較,後續會進一步分析。
1、建立表:SQL> create table test1 (id number,c1 varchar2(50),c2 varchar2(50),c3 varchar2(5
0),c4 varchar2(50));
2、模擬插入10000條記錄:
SQL> begin
for i in 1..10000 loop
insert into test1 values(i,'阿斯頓飛就快了','及卡拉加水電費了健康','就愛看lsd減肥辣椒水代理費','阿斯頓飛卡死就到了費勁啊lsd就分開了');
end loop;
end;
/
3、開啟執行計劃,並查詢:
SQL> set autotrace on;
SQL> select * from scott.test1 where id=500;
執行計劃
----------------------------------------------------------
Plan hash value: 4122059633
---------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 242 | 42 (3)| 00:00:01 |
|* 1 | TABLE ACCESS FULL| TEST1 | 2 | 242 | 42 (3)| 00:00:01 |
---------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("ID"=500)
Note
-----
- dynamic sampling used for this statement
統計資訊
----------------------------------------------------------
171 recursive calls
0 db block gets
283 consistent gets
0 physical reads
0 redo size
708 bytes sent via SQL*Net to client
385 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
4 sorts (memory)
0 sorts (disk)
1 rows processed
4、建立在id上的索引:
SQL> create index i_test1 on test1(id);
5、再次查詢,並檢視執行計劃:
SQL> select * from scott.test1 where id=500;
執行計劃
----------------------------------------------------------
Plan hash value: 550433309
--------------------------------------------------------------------------------
-------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Tim
e |
--------------------------------------------------------------------------------
-------
| 0 | SELECT STATEMENT | | 1 | 121 | 2 (0)| 00:
00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| TEST1 | 1 | 121 | 2 (0)| 00:
00:01 |
|* 2 | INDEX RANGE SCAN | I_TEST1 | 1 | | 1 (0)| 00:
00:01 |
--------------------------------------------------------------------------------
-------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("ID"=500)
Note
-----
- dynamic sampling used for this statement
統計資訊
----------------------------------------------------------
0 recursive calls
0 db block gets
4 consistent gets
0 physical reads
0 redo size
712 bytes sent via SQL*Net to client
385 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
6、可以看到,建立索引後效率有很大提高。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26892340/viewspace-722176/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [轉]Oracle分割槽索引--本地索引和全域性索引比較Oracle索引
- Oracle分割槽索引--本地索引和全域性索引比較(轉)Oracle索引
- 比較有索引和無索引的查詢速度(在mysql資料庫中)索引MySql資料庫
- 全域性索引和本地索引的比較索引
- 【索引】Oracle查詢指定索引提高查詢效率索引Oracle
- 索引監控-查詢從未被使用過的索引索引
- 索引的分析和比較索引
- 【Oracle】如何查詢檢視時使用索引Oracle索引
- 【索引】Oracle之不可見索引和虛擬索引的比對索引Oracle
- oracle 索引和不走索引的幾種形式Oracle索引
- 為何在查詢中索引未被使用索引
- cassandra的索引查詢和排序索引排序
- oracle 索引使用及索引失效總結Oracle索引
- multi-key索引和wildCard索引場景比較索引
- 一個查詢不走索引的例子索引
- Oracle索引HINT的使用Oracle索引
- ORACLE 索引使用規Oracle索引
- 【索引】Bitmap點陣圖索引與普通的B-Tree索引鎖的比較索引
- 【索引】反向索引--條件 範圍查詢索引
- 使用Elasticsearch的動態索引和索引優化Elasticsearch索引優化
- 使用聚集索引和非聚集索引的區別索引
- 【索引】使用索引分析快速得到索引的基本資訊索引
- 全文索引和查詢概念索引
- 表和索引並行查詢索引並行
- Oracle 查詢行數很少,為什麼不走索引?Oracle索引
- Oracle索引的使用規則Oracle索引
- ORACLE 監控索引的使用Oracle索引
- ElasticSearch分片互動過程(建立索引、刪除索引、查詢索引)Elasticsearch索引
- 【索引】反向索引--條件 範圍查詢(二)索引
- 索引的使用索引
- MySQL進階篇(03):合理的使用索引結構和查詢MySql索引
- elasticsearch之多索引查詢Elasticsearch索引
- Elasticsearch(三):索引查詢Elasticsearch索引
- 查詢索引 常用SQL索引SQL
- 查詢相似的索引索引
- Oracle全域性索引和本地索引Oracle索引
- [zt] 聚集索引和非聚集索引(sql server索引結構及其使用)索引SQLServer
- 【MOS:1549181.1】為何在查詢中索引未被使用--為什麼索引沒有被使用索引