亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

用Oracle 9i全索引掃描快速訪問數據

2024-08-29 14:01:35
字體:
來源:轉載
供稿:網友

為了實現Oracle關于增加SQL優化查詢智能的承諾,Oracle9i增強了全索引SQL執行計劃以支持基于功能的索引(function-based index)。在Oracle 8i中,SQL優化器添加了判斷查詢是否可以專門用一個現存的索引來解決的智能。一旦存在索引,Oracle就會繞過對表的訪問,索引組織表(index-organized table,IOT)結構就是一個例子。在IOT結構中,所有的數據都載入索引的b-樹結構,這樣表(table)就成為一個多余的東西了。

一旦Oracle SQL優化器檢測到查詢無需訪問表時,Oracle就調用全索引掃描并快速讀取每一個索引塊而無需接觸表本身。有一點很重要:全索引掃描并沒有讀取索引節點,而是一塊一塊的執行掃描并快速捕獲索引節點。最好,Oracle調用多塊讀取功能,調用多個過程來讀取表。

Oracle和多塊讀取

為了加快表和索引的訪問速度,Oracle使用了db_file_multiblock_read_count參數(默認參數為8)來輔助把全表掃描和全索引掃描所獲得的數據塊盡快送到數據緩沖區中。然而,這個參數只有當SQL查詢執行全表掃描時才可用,并且,在絕大多數情況下,查詢要使用索引來訪問表。

Oracle對全索引掃描有如下限制:

SQL請求的全部列(column)必須駐留在索引樹中;也就是說,SELECT和WHERE字句中的所有數據列必須存在于索引中。

查詢訪問大量的行(row)。根據你查詢的范圍,比例變化范圍為10%到25%之間,這個比例參數db_file_multiblock_read_count的設置和查詢的并行程度極大的影響到這個比例。

由于索引節點并沒有按索引順序排列,所以列并沒有順序。這樣,ORDER BY字句將要求附加的排序操作。

Oracle提供了一個SQL提示(hint)來強制全索引掃描。你也可以通過指定index_ffs提示來強制快速索引掃描,這常常與parallel_index提示組合來提高性能。例如,下面的查詢強迫使用并行快速全索引掃描:

select distinct /*+ index_ffs(c,pk_auto) parallel_index_   (automobile, pk_auto) color, count(*)fromautomobilesgroup by color;

由于涉及了所有的變量,所以全索引是否會加快查詢速度并不能簡單的加以回答。所以,大多數有經驗的SQL調試者(tuner)會對符合快速全索引掃描標準的查詢進行手工計時,看看使用全索引掃描的反映時間是否會降低。

函數索引基礎

在Oracle9i之前,全索引掃描只有當創建的索引沒有空值時才可以使用,也就是說,Oracle建立索引時必須用一個NOT NULL子句才可以使用該索引。由于Oracle9i支持用函數(function-based)索引實現的唯索索引掃描,這種情況大大改觀。

簡單回歸一下,函數索引是Oracle8的一個重要改進,因為它提供了一種有效的消除無必要長表全掃描的機制,由于函數索引可以在任何查詢語句中的WHERE子句中精確復制,Oracle總會用一個索引來匹配上SQL查詢的WHERE子句。

現在,我要會用一個student表來舉一個簡單的例子來解釋全索引掃描如何與函數索引一起工作的過程。

創建student表

(student_name varchar2(40), date_of_birth date);

使用這個表,創建與表中所有列相關聯的函數索引。在本例中,該函數為initcap(即大寫每個單詞的首字母)和to_char(即把一個數字變成字符):

create index whole_studenton student(initcap(student_name), to_char(date_of_birth,’MM-DD-YY’));

定義完函數索引后,Oracle9i中任何可以引用這些列(column)的SQL語句都可以使用全索引掃描。下面是SQL匹配函數索引的查詢例子:

select * from studentwhere initcap(student_name) = ‘Jones’;select * from studentwhere to_char(date_of_birth,’MM-DD=YY’) = ’04-07-85’;

用函數索引來調用全索引掃描

Oracle9i只要可能就會使用函數索引并在函數索引的基礎上調用全索引掃描。如果SQL優化器統計結果表明使用全索引掃描的速度將會超過通過索引的b-樹訪問的速度,那么Oracle9i就會這么做。

下面是用函數索引調用唯索掃描的準則。所有的SQL謂詞匹配索引中的列,查詢必須從表中返回足夠多的行,這樣做的目的是為了讓代價優化器(cost-based optimizer)來判斷全索引掃描是否要比傳統的索引訪問方法要快。是否調用全索引掃描的決定取決于下面幾個參數設置:

代價優化器的適當統計數字――這個計劃(schema)最近已經分析過了,而且optimizer_mode參數不能設置為RULE。

索引的并行程度――注意索引的并行程度是獨立設置的;索引并沒有繼承表的并行程度。

optimizer_index_cost_adj的設置――它控制代價優化器是否傾向于全索引掃描。

db_file_multiblock_read_count的設置――這個參數影響到全索引掃描的代價。這個值越高,全索引掃描的代價也就會越“便宜”。

索引的直方圖表示――對偏移(skewed)索引,它幫助代價優化器評估查詢返回的行數。

Oracle的一個重要提高

在函數索引基礎上的快速全索引掃描是Oracle9i的另一個提高性能的途徑。當數據庫遷移到Oracle9i時,許多數據庫自動開始使用這個新的執行計劃。不過,當SQL代價優化器決定是否選擇全索引掃描時,還要考慮幾個因素。Oracle專業人員需要適當設置參數,以確保代價優化器不會用不合適的方式使用快速全索引掃描――這一點需要特別注意。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美大片免费观看| 亚洲精品大尺度| 91中文在线观看| 4438全国亚洲精品在线观看视频| 欧美激情va永久在线播放| 成人黄色影片在线| 久久97精品久久久久久久不卡| 亚洲国产精品一区二区三区| 国产精品久久久久久久9999| 亚洲成人av片| 日韩高清免费在线| 色999日韩欧美国产| 国产欧美精品日韩精品| 国产一区二区三区在线看| 亚洲精品日韩丝袜精品| 日韩影视在线观看| 在线视频欧美日韩精品| 国产精品草莓在线免费观看| 欧美日韩在线视频观看| 国产一区玩具在线观看| 亚洲国产精品悠悠久久琪琪| 在线播放日韩av| 91网站免费看| 欧美性猛交xxxx免费看久久久| 国产a∨精品一区二区三区不卡| 精品亚洲一区二区三区在线播放| 欧美日韩国产一中文字不卡| 久久频这里精品99香蕉| 日韩成人中文电影| 国产成人综合久久| 亚洲欧美日韩视频一区| 亚洲一区二区久久久久久| 91精品国产777在线观看| 蜜臀久久99精品久久久无需会员| 国产丝袜一区二区三区免费视频| 91免费综合在线| 国产欧美韩国高清| 欧美日韩国产精品一区二区不卡中文| 性日韩欧美在线视频| 欧美专区第一页| 国产精品伦子伦免费视频| 国产精品十八以下禁看| 国产区精品视频| 中日韩美女免费视频网站在线观看| 成人精品一区二区三区电影免费| 日韩在线免费视频观看| 欧美精品久久久久久久免费观看| 久久精品久久精品亚洲人| 亚洲欧美第一页| 欧美另类暴力丝袜| 欧美精品日韩三级| 亚洲成人免费在线视频| 最新亚洲国产精品| 国产日韩av在线| 992tv在线成人免费观看| 国产精品久久婷婷六月丁香| 久久久久久久久爱| 黄色一区二区在线观看| 国产欧美日韩丝袜精品一区| 精品视频在线播放色网色视频| 国产精品久久久久久久av电影| 成人中文字幕+乱码+中文字幕| 亚洲欧美激情在线视频| 日韩av综合中文字幕| 中文字幕精品在线| 久久精品色欧美aⅴ一区二区| 国产亚洲精品一区二555| 青草热久免费精品视频| 久久噜噜噜精品国产亚洲综合| 亚洲欧美日韩精品久久| 精品国产一区二区在线| 国产精品手机播放| 亚洲欧洲激情在线| 精品国偷自产在线视频| 96pao国产成视频永久免费| 欧美性猛交xxxx免费看| 色偷偷av一区二区三区| 日本亚洲精品在线观看| 91免费福利视频| 欧美一级电影在线| 成人动漫网站在线观看| 欧美大片在线免费观看| 欧美成aaa人片免费看| 亚洲国产精品成人av| 日本午夜精品理论片a级appf发布| 91极品视频在线| 自拍视频国产精品| 欧美精品在线视频观看| 国产欧美久久久久久| 97精品视频在线播放| 久久久精品久久| 成人av电影天堂| 国产成人综合精品| 亚洲精品免费在线视频| 日韩成人在线网站| 亚洲欧美一区二区精品久久久| 欧美大胆a视频| 国产成人亚洲综合青青| 深夜精品寂寞黄网站在线观看| 色综合导航网站| 亚洲性日韩精品一区二区| 亚洲激情在线观看| 91麻豆国产语对白在线观看| 亚洲精品美女在线观看| 国产日韩欧美夫妻视频在线观看| 美女精品久久久| 亚洲四色影视在线观看| 久久久久久久久91| 亚洲精品一区二区三区不| 亚洲精品久久久一区二区三区| 影音先锋欧美在线资源| 国产精品444| 欧美一区二区三区……| 亲爱的老师9免费观看全集电视剧| 成人久久一区二区| 亚洲精品久久久久中文字幕二区| 啪一啪鲁一鲁2019在线视频| 欧美性极品xxxx做受| 欧美中文字幕在线播放| 欧美裸体xxxx极品少妇软件| 亚洲一区美女视频在线观看免费| 色偷偷av亚洲男人的天堂| 亚洲男人第一网站| 欧美日韩国产综合视频在线观看中文| 亚洲人成在线观看网站高清| 久久久久久国产精品三级玉女聊斋| 2018中文字幕一区二区三区| 久久中文字幕国产| 亚洲国产私拍精品国模在线观看| 色视频www在线播放国产成人| 亚洲国产精品一区二区久| 日韩视频一区在线| 亚洲成色777777在线观看影院| 国产精品久久久久久久久影视| 日韩专区中文字幕| 国产成人精品免高潮费视频| 九九九久久国产免费| 亚洲精品v欧美精品v日韩精品| 亚洲美女av在线播放| 国产精品极品美女粉嫩高清在线| 欧美激情在线狂野欧美精品| 日本国产精品视频| 97精品视频在线播放| 亚洲一区美女视频在线观看免费| 欧美日韩成人黄色| 97在线免费观看视频| 国产欧美一区二区三区久久人妖| 黑人巨大精品欧美一区免费视频| 国产精品99久久久久久久久久久久| 久久久久久久久亚洲| 亚洲aⅴ日韩av电影在线观看| 欧美激情啊啊啊| 亚洲xxx大片| 亚洲精品国产综合区久久久久久久| 97在线观看视频| 国产欧美日韩精品专区| 中文欧美在线视频| 午夜精品久久久久久久男人的天堂| yw.139尤物在线精品视频| 亚洲欧美国产精品va在线观看| x99av成人免费| 国产精品久久久久久av福利| 成人免费视频97| 国产视频精品在线|