国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

關于Oracle 9i 跳躍式索引掃描(Index Skip Scan)的小測試

瀏覽:5日期:2023-11-18 15:12:02
在Oracle9i中我們知道能夠使用跳躍式索引掃描(Index Skip Scan).然而,能利用跳躍式索引掃描的情況其實是有些限制的.從Oracle的文檔中我們可以找到這樣的話:Index Skip Scans Index skip scans improve index scans by nonprefix columns. Often, scanning index blocks is faster than scanning table data blocks.Skip scanning lets a composite index be split logically into smaller subindexes. In skip scanning, the initial column of the composite index is not specified in the query. In other Words, it is skipped.The number of logical subindexes is determined by the number of distinct values in the initial column. Skip scanning is advantageous if there are few distinct values in the leading column of the compositeindex and many distinct values in the nonleading key of the index.也可以這樣說,優化器根據索引中的前導列(索引到的第一列)的唯一值的數量決定是否使用Skip Scan.我們首先做個測試:SQL> CREATE TABLE test AS 2; SELECT ROWNUM a,ROWNUM-1 b ,ROWNUM-2 c,ROWNUM-3 d,ROWNUM-4 e 3; FROM all_objects 4; /SQL> SELECT DISTINCT COUNT (a) FROM test; COUNT(A)---------- 28251表已創建。SQL> SQL> CREATE INDEX test_idx ON test(a,b,c) 2; /索引已創建。SQL> ANALYZE TABLE test COMPUTE STATISTICS 2; FOR TABLE 3; FOR ALL INDEXES 4; FOR ALL INDEXED COLUMNS 5; /表已分析。SQL> SET autotrace traceonly eXPlainSQL> SELECT *; FROM test WHERE b = 99 2; /Execution Plan---------------------------------------------------------- 0;;;SELECT STATEMENT Optimizer=CHOOSE (Cost=36 Card=1 Bytes=26) 1;0;TABLE Access (FULL) OF 'TEST' (Cost=36 Card=1 Bytes=26)--可見這里CBO選擇了全表掃描.--我們接著做另一個測試:SQL> drop table test;表已丟棄。SQL> CREATE TABLE test 2; AS 3; SELECT DECODE(MOD(ROWNUM,2), 0, '1', '2' ) a, 4;ROWNUM-1 b, 5;ROWNUM-2 c, 6;ROWNUM-3 d, 7;ROWNUM-4 e 8;FROM all_objects 9; /表已創建。 SQL> set autotrace offSQL> select distinct a from test;A--12--A列只有兩個唯一值SQL> CREATE INDEX test_idx ON test(a,b,c) 2; /索引已創建。SQL> ANALYZE TABLE test COMPUTE STATISTICS 2; FOR TABLE 3; FOR ALL INDEXES 4; FOR ALL INDEXED COLUMNS 5; /表已分析。SQL> set autotrace traceonly explainSQL> SELECT *; FROM test WHERE b = 99 2; /Execution Plan---------------------------------------------------------- 0;;;SELECT STATEMENT Optimizer=CHOOSE (Cost=4 Card=1 Bytes=24) 1;0TABLE ACCESS (BY INDEX ROWID) OF 'TEST' (Cost=4 Card=1 Bytes=24) 2;1;;INDEX (SKIP SCAN) OF 'TEST_IDX' (NON-UNIQUE) (Cost=3 Card=1)Oracle的優化器(這里指的是CBO)能對查詢應用Index Skip Scans至少要有幾個條件:1 優化器認為是合適的.2 索引中的前導列的唯一值的數量能滿足一定的條件.3 優化器要知道前導列的值分布(通過分析/統計表得到)4 合適的SQL語句......更多信息請參考:http://www.itpub.net/showthread.PHP?threadid=85948http://www.cnoug.org/bin/ut/topic_show.cgi?id=608&h=1&bpg=1&age=100http://www.itpub.net/showthread.php?s=&postid=985602#post985602Oracle9i Database Performance Tuning Guide and Reference Release 2 (9.2)Part Number A96533-02感謝參加討論的各位高手.
標簽: Oracle 數據庫
主站蜘蛛池模板: 国产香蕉98碰碰久久人人 | 一级毛片免费在线 | 在线观看国产日韩 | 欧美一区二区在线视频 | www亚洲成人 | a一级毛片 | 亚洲国产成人在线观看 | 99久久精品视香蕉蕉er热资源 | 亚洲自偷自偷图片在线高清 | 国产福利一区二区在线精品 | 免费v片视频在线观看视频 免费v片在线观看 | 九九在线偷拍视频在线播放 | 岬奈一区二区中文字幕 | 操欧美女 | 久久综合狠狠综合久久97色 | 久久91av | 91男女视频| 成年男女男精品免费视频网站 | 97精品久久久久中文字幕 | 日韩一区二区三区视频在线观看 | 高清大学生毛片一级 | 女人被男人桶 | 久久久国产99久久国产一 | 可以免费看黄的网址 | 国产九九在线观看播放 | avtom影院入口永久在线 | 亚洲免费视频一区二区三区 | 国产中文字幕视频 | 夜夜躁狠狠躁日日躁2021 | 中文乱码字幕午夜无线观看 | 九九精品视频在线播放 | 日本专区 | 欧美一级高清片免费一级 | 9l国产精品久久久久麻豆 | 波多野一区二区 | 最新国产三级在线观看不卡 | 国产精品亚洲一区二区在线观看 | 宅男毛片| 亚洲精品日本高清中文字幕 | 欧美成人精品在线 | 欧美人体在线 |