日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
帶您了解Oracle FBI索引

Oracle FBI索引是Oracle8i的新特性,下面就為您詳細介紹Oracle FBI索引的概念及使用,如果您對Oracle FBI索引方面感興趣的話,不妨一看。

我們提供的服務有:成都網(wǎng)站制作、網(wǎng)站建設、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、平桂ssl等。為成百上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的平桂網(wǎng)站制作公司

Oracle8i的很重要的一個新特性就是增加了function-based index這種索引類型(后面簡稱為FBI)。有了這個特性后,Oracle DBA就可以在索引中使用函數(shù)或者表達式了。這些函數(shù)可以使Oracle自己的函數(shù),也可以使用戶自己的PL/SQL函數(shù)等。

DBA在SQL語句調(diào)優(yōu)的過程中遇到的一個很常見的問題就是,如何優(yōu)化那些在WHERE子句中使用了函數(shù)的語句。因為在以前,在WHERE子句中使用函數(shù)會使在這個表上創(chuàng)建的索引沒法利用,從而難以提高這個語句的性能。
例子:

使用基于成本的優(yōu)化器,索引為標準的B樹索引,建立在SURNAME列上。

 
 
 
  1. SQL>create index non_fbi on sale_contacts (surname);  
  2. SQL>analyze index non_fbi compute statistics;   
  3. SQL>:analyze table sale_contacts compute statistics;   
  4. SQL>SELECT count(*) FROM sale_contacts  
  5. WHERE UPPER(surname) = 'ELLISON';  
  6.  
  7. Execution Plan   
  8. ----------------------------------------------------------   
  9. 0 SELECT STATEMENT Optimizer=CHOOSE (Cost=3 Card=1 Bytes=17)   
  10. 1 0 SORT (AGGREGATE)   
  11. 2 1 TABLE ACCESS (FULL) OF 'SALES_CONTACTS' (Cost=3 Card=16 Bytes=272)   

從SQL*PLUS的autotrace產(chǎn)生的執(zhí)行路徑可以看到,雖然我們在WHERE子句中用到的SURNAME列上創(chuàng)建了索引,但是仍然執(zhí)行的是全表掃描。如果這張表很大的話,這回消耗大量的時間。
現(xiàn)在我們試著建立一個Oracle FBI索引:

 
 
 
  1. SQL>create index fbi on sale_contacts (UPPER(surname));  
  2. SQL>analyze index fbi compute statistics;  
  3. SQL>analyze table sale_contacts compute statistics;  
  4. SQL>SELECT count(*) FROM sale_contacts WHERE UPPER(surname) = 'ELLISON';   
  5. Execution Plan  
  6. ----------------------------------------------------------   
  7. 0 SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=1 Bytes=17)   
  8. 1 0 SORT (AGGREGATE)   
  9. 2 1 INDEX (RANGE SCAN) OF 'FBI' (NON-UNIQUE) (Cost=2 Card=381 Bytes=6477) 

從SQL*Plus返回的執(zhí)行計劃我們可以看到,這次,Oracle對表不再全表掃描,而是先掃描索引,因為優(yōu)化器可以知道FBI索引得存在。
使用Oracle FBI索引所能夠帶來的性能提升取決于表的大小、表中重復記錄的量、在WHERE子句中使用的列等因素。
有一點需要清楚,Oracle FBI索引并不真正在索引里邊存儲了表達式的結(jié)果,而是使用了一個"表達樹"(expression tree)。

【編輯推薦】

詳解Windows下卸載Oracle數(shù)據(jù)庫

詳解如何將Oracle安裝為Linux服務

詳解Oracle多種表連接方式

oracle中使用SQL遞歸語句的例子

初識Oracle裸設備二十問


文章標題:帶您了解Oracle FBI索引
標題URL:http://www.5511xx.com/article/dhgeiop.html