一個查詢不走索引的例子
-- 查詢不走索引的例子,因為不能對NULL進行索引,所有存在null的情況下,查詢不走索引。當指定了索引的欄位為not null的時候,查詢才會走索引。
-- 建立測試用表,並建立索引
SYS@test>create table t11 as select * from dba_objects where object_id is not null;
Table created.
SYS@test>create index idx_object_id11 on t11(object_id);
Index created.
-- 檢視執行計劃,發現是全表掃描,雖然有索引
SYS@test>set autotrace traceonly
SYS@test>select count(*) from t11;
Execution Plan
----------------------------------------------------------
Plan hash value: 4132580237
-------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
-------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 340 (1)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | TABLE ACCESS FULL| T11 | 98612 | 340 (1)| 00:00:01 |
-------------------------------------------------------------------
Note
-----
- dynamic sampling used for this statement (level=2)
- SQL plan baseline "SQL_PLAN_5b92zmgvh38s16d6f1a89" used for this statement
Statistics
----------------------------------------------------------
6 recursive calls
0 db block gets
1329 consistent gets
1245 physical reads
0 redo size
528 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
將索引所在的列,修改為not null。 這樣執行計劃就走索引了。
SYS@test>alter table t11 modify object_id not null;
Table altered.
SYS@test>select count(*) from t11;
Execution Plan
----------------------------------------------------------
Plan hash value: 767390840
---------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
---------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 54 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | INDEX FAST FULL SCAN| IDX_OBJECT_ID11 | 98612 | 54 (0)| 00:00:01 |
---------------------------------------------------------------------------------
Note
-----
- dynamic sampling used for this statement (level=2)
Statistics
----------------------------------------------------------
31 recursive calls
4 db block gets
298 consistent gets
193 physical reads
712 redo size
528 bytes sent via SQL*Net to client
523 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
4 sorts (memory)
0 sorts (disk)
1 rows processed
SYS@test>
END。 相關文章
- MySQL自聯合查詢的一個例子MySql
- php mysql 一個查詢優化的簡單例子PHPMySql優化單例
- 查詢某個表的索引資訊索引
- 從一個MysqL的例子來學習查詢語句(轉)MySql
- 查詢訪問同一表的兩個以上索引(一)索引
- 子查詢的典型例子
- mybatis like 查詢的例子MyBatis
- 【索引】Oracle查詢指定索引提高查詢效率索引Oracle
- 查詢訪問同一表的兩個以上索引(三)索引
- 查詢訪問同一表的兩個以上索引(二)索引
- MySQL 唯一索引範圍查詢鎖下一個記錄的理解MySql索引
- Laravel 關聯查詢 ——一對一 簡單例子Laravel單例
- 一個很簡單的查詢,為什麼用不到索引索引
- Oracle 查詢行數很少,為什麼不走索引?Oracle索引
- 一個不錯的資料倉儲名字查詢網站網站
- cassandra的索引查詢和排序索引排序
- elasticsearch之多索引查詢Elasticsearch索引
- Elasticsearch(三):索引查詢Elasticsearch索引
- 查詢索引 常用SQL索引SQL
- 查詢相似的索引索引
- [MySQL] - 聯表查詢,查詢一個不在另一個表的記錄MySql
- 一個使用JDBC按Date查詢查詢的問題JDBC
- 【索引】oracle查詢使用索引和不使用索引的比較索引Oracle
- PMM Query Analytics的查詢分析器怎麼用?典型教學例子一個
- 如果走框架在同一頁面裡實現多個列表的分頁查詢框架
- 索引監控-查詢從未被使用過的索引索引
- Laravel 5 關聯查詢 ——一對 N 簡單例子Laravel單例
- MYSQL DQL in 到底會不會走索引&in 範圍查詢引發的思考。MySql索引
- 走索引掃描的慢查詢索引
- 【索引】反向索引--條件 範圍查詢索引
- MongoDB慢查詢與索引MongoDB索引
- 字母索引查詢ListView元件索引View元件
- mysql查詢索引結構MySql索引
- 反向索引與模糊查詢索引
- Mysql 巢狀查詢100例子MySql巢狀
- 一個oracle查詢引起的bugOracle
- 一個簡單的樹查詢
- 一個遞迴查詢遞迴