前提:使用system账户登录sql plus。
建表:
SQL> create table t2 as select * from dba_objects; 表已创建。 已用时间: 00: 00: 00.81 SQL> insert into t2 select * from t2; 已创建72695行。 已用时间: 00: 00: 00.98 SQL> insert into t2 select * from t2; 已创建145390行。 已用时间: 00: 00: 00.71 SQL> insert into t2 select * from t2; 已创建290780行。 已用时间: 00: 00: 02.40 SQL> commit; 提交完成。 已用时间: 00: 00: 00.00
不加索引时查询:
SQL> select * from t2 where object_id=99; 已选择8行。 已用时间: 00: 00: 00.03 执行计划 ---------------------------------------------------------- Plan hash value: 1513984157 -------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 91 | 18837 | 2250 (1)| 00:00:27 | |* 1 | TABLE ACCESS FULL| T2 | 91 | 18837 | 2250 (1)| 00:00:27 | -------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter("OBJECT_ID"=99) Note ----- - dynamic sampling used for this statement (level=2) 统计信息 ---------------------------------------------------------- 5 recursive calls 0 db block gets 8331 consistent gets 0 physical reads 0 redo size 1774 bytes sent via SQL*Net to client 519 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 8 rows processed
添加索引后执行同样sql:
SQL> create index idx_t2_object_id on t2(object_id); 索引已创建。 已用时间: 00: 00: 00.73 SQL> select * from t2 where object_id=99; 已选择8行。 已用时间: 00: 00: 00.01 执行计划 ---------------------------------------------------------- Plan hash value: 188336643 -------------------------------------------------------------------------------- ---------------- | Id | Operation | Name | Rows | Bytes | Cost (% CPU)| Time | -------------------------------------------------------------------------------- ---------------- | 0 | SELECT STATEMENT | | 8 | 1656 | 12 (0)| 00:00:01 | | 1 | TABLE ACCESS BY INDEX ROWID| T2 | 8 | 1656 | 12 (0)| 00:00:01 | |* 2 | INDEX RANGE SCAN | IDX_T2_OBJECT_ID | 8 | | 3 (0)| 00:00:01 | -------------------------------------------------------------------------------- ---------------- Predicate Information (identified by operation id): --------------------------------------------------- 2 - access("OBJECT_ID"=99) Note ----- - dynamic sampling used for this statement (level=2) 统计信息 ---------------------------------------------------------- 9 recursive calls 0 db block gets 90 consistent gets 2 physical reads 0 redo size 2236 bytes sent via SQL*Net to client 519 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 8 rows processed
对比表格:
Cost | consistent gets | Elapsed | |
无索引 | 2250 | 8331 | 0.03s |
有索引 | 12 | 90 | 0.01s |
--2020年2月3日--