精品久久看,欧美成人久久一级c片免费,日本加勒比在线精品视频,国产一区二区三区免费大片天美,国产成人精品999在线,97理论三级九七午夜在线观看

當前位置:首頁文章首頁 IT學院 IT技術

聯合索引優化方式選擇

作者:  來源:  發布時間:2012-2-1 8:46:33  點擊:

聯合索引的使用,如果在表的兩個字段上建立聯合索引,在查詢時如果謂詞中沒有出現第一個字段,仍然可以通過index skip scan的方式實現索引訪問的方式。但是要注意的是不是所有的情況使用index skip scan都是最優的。當聯合索引的第一個字段相同的值很多,大部分是相同的,這種情況下使用index skip scan的方式是最優的。

SQL> create table t as select 1 id, object_name from dba_objects;

Table created.

SQL> insert into t select 2, object_name from dba_objects;

50319 rows created.

SQL> insert into t select 3, object_name from dba_objects;

50319 rows created.

SQL> insert into t select 4, object_name from dba_objects;

50319 rows created.

SQL> commit ;

Commit complete.

SQL> select id,count(*) from t group by id;

ID COUNT(*)

---------- ----------

1 50319

2 50319

4 50319

3 50319

可以看到表t的值集中在ID為1,2,3,4幾個值上面,這時選擇Index Skip Scan的訪問方式是最優的。分析如下:

SQL> select * from t where object_name='TEST';

no rows selected

Execution Plan

----------------------------------------------------------

Plan hash value: 3688940926

--------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

--------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 7 | 189 | 6 (0)| 00:00:01 |

|* 1 | INDEX SKIP SCAN | IND_T | 7 | 189 | 6 (0)| 00:00:01 |

--------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

1 - access("OBJECT_NAME"='TEST')

filter("OBJECT_NAME"='TEST')

Statistics

----------------------------------------------------------

1 recursive calls

0 db block gets

14 consistent gets

13 physical reads

0 redo size

388 bytes sent via SQL*Net to client

458 bytes received via SQL*Net from client

1 SQL*Net roundtrips to/from client

0 sorts (memory)

0 sorts (disk)

0 rows processed

當使用hints使其采用全表掃描的方式時

SQL> select /*+ full(t) */ * from t where object_name='TEST';

no rows selected

Execution Plan

----------------------------------------------------------

Plan hash value: 1601196873

--------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

--------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 7 | 189 | 203 (3)| 00:00:03 |

|* 1 | TABLE ACCESS FULL| T | 7 | 189 | 203 (3)| 00:00:03 |

--------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

1 - filter("OBJECT_NAME"='TEST')

Statistics

----------------------------------------------------------

1 recursive calls

0 db block gets

900 consistent gets

0 physical reads

0 redo size

388 bytes sent via SQL*Net to client

458 bytes received via SQL*Net from client

1 SQL*Net roundtrips to/from client

0 sorts (memory)

0 sorts (disk)

0 rows processed

由上面可以看到,使用Index Skip Scan時只掃描了14個數據塊,而采用全表掃描則掃描了900個數據塊。

但是兩外一種情況確實截然相反的,當聯合索引的第一個值重復很少時,使用全表掃描的效率卻要高一些。

上一篇:一些有效的php函數 下一篇:

相關軟件

相關文章

文章評論

軟件按字母排列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
主站蜘蛛池模板: 欧美一区在线观看视频 | 99免费精品视频 | 成人欧美一区二区三区黑人 | 第四色米奇| 黄色网站在线观看视频 | 精品成人乱色一区二区 | 亚洲精品国产成人7777 | av美女图片 | 国产精品久久天天影视 | 激情成人综合网 | 欧美老妇性生活 | 国产精品毛片在线更新 | 久久香蕉国产视频 | 深爱激情婷婷 | 国偷自产一区二区免费视频 | 国产精品岛国久久久久 | 国产综合久久 | 婷婷色在线视频 | 成人黄 在线播放 | 亚洲国产系列久久精品99人人 | 日韩欧美国产中文字幕 | 久久成人免费电影 | 国产午夜精品久久久久 | 99视频九九精品视频在线观看 | 久久精品国产免费 | 国产精品视频免费一区二区三区 | 国产高清a| 久久亚洲精品中文字幕 | 日本深夜影院 | 久久综合气久久狠狠狠97色 | 91精品一区二区 | 精品视频99 | 久久久免费视频播放 | 狠狠干天天爽 | a一级一色一情 | 视频一区欧美 | 国产亚洲自拍一区 | 国产麻豆精品 | 五月网站 | 免费精品在线视频 | 久久免费视频3 |