Oracle 10g資料庫查詢資料的方法總結

2021-12-22 16:46:17 字數 1981 閱讀 1777

oracle 10g 查詢資料主要有以下方式:

全表掃瞄和rowid查詢資料

全表掃瞄(full table scans ):

有時oracle資料庫在評估最優執行計畫時,當去取大量資料時,就會優先考慮使用全表掃瞄,因為這時全表掃瞄是最優的。一般取出的資料佔表的資料5%--10%左右會發生表掃瞄,一般在oltp系統中盡量避免表掃瞄。

為了更好的使用表掃瞄,提高效率,在oracle 中有好幾種分割槽方法,提高表掃瞄的效率,讓表按具體業務邏輯來分割槽,盡量做到分割槽消除,減少表掃瞄的大小,提高效能。

rowid查詢資料(table access by rowid 或r owid lookup ):

行rowid是行資料在資料庫檔案,資料塊和行在塊的具體位置,所以是oracle最快的定位方法。

這種方法只能一次讀取乙個io,不會涉及多個io。

目前通過索引查詢,主要有5種索引查詢方式:

索引唯一查詢(index unique scan )

索引範圍查詢 (index range scan )

索引全部掃瞄 (index full scan )

索引快速掃瞄 (index fast full scan )

索引跳躍式查詢 (index skip scan )

通過索引查詢資料

索引唯一查詢(index unique scan ):

當查詢列是如果存在unique 或primary key 約束(它保證了語句只訪問單行)的話,oracle經常實現唯一性掃瞄。此查詢方法效率很高。

索引範圍查詢 (index range scan ):

使用乙個索引訪問多行資料,在唯一索引上使用索引範圍掃瞄的典型情況下是在謂詞(where限制條件)中使用了範圍操作符(如》、<、<>、>=、<=、between)。

索引全部掃瞄 (index full scan ):

全索引掃瞄。對查詢出的資料進行排序,而且此時查詢出的資料都必須從索引中可以直接得到。同時order by排序的資料應該是按索引的順序來讀取的。

如:explain plan for select empno,ename from big_emp order by empno,ename。

索引快速掃瞄 (index fast full scan ):

與index full scan很類似,但是乙個顯著的區別就是它不對查詢出的資料進行排序,即資料不是以排序順序被返回 ,在這種訪問方法中,可以使用多塊讀功能,也可以使用並行讀入,以便獲得最大吞吐量與縮短執行時間,索引快速全域性掃瞄,不帶order by情況下常發生,如:explain planforselect empno,ename from big_emp。

索引跳躍式查詢(index skip scan ):

where條件列是非索引的前導列情況下常發生。如下:

1. createindexi_emponemp(empno,ename);

2. 3. select/*+index_ss(empi_emp)*/jobfromempwhereename='smith';

總結:index full scan(索引全掃瞄):有排序 ,就是利用到了index的排序功能。原理:通過root根級----到中間級---葉級。

index fast full scan (索引快速掃瞄):無排序, 就可以利用多塊讀取方式,提高查詢速度,因為資料要求是無序的。即可以使用多塊查詢,取出的資料就是資料存放的順序。

當進行index full scan的時候oracle定位到索引的root block,然後到branch block(如果有的話),再定位到第乙個leaf block, 然後根據leaf block的雙向鍊錶順序讀取。它所讀取的塊都是有順序的,也是經過排序的。

而index fast full scan則不同,它是從段頭開始,讀取包含位圖塊,root block,所有的branch block, leaf block,讀取的順序完全有物理儲存位置決定,並採取多塊讀,每次讀取db_file_multiblock_read_count個。

**:網路編輯:聯動北方技術論壇

全解除安裝Oracle10g 方法

軟體環境 1 windows xp oracle 10g 2 oracle安裝路徑為 d oracle 1 如果資料庫配置了自動儲存管理 asm 應該先刪除聚集同步服務css cluster synchronization services 刪除css服務的方法是在dos命令列中執行如下命令 loc...

oracle資料庫入門

很多剛剛接觸oracle資料庫的初學者總是感覺oracle很難學,無從下手,漸漸的感覺對oracle很排斥,有的朋友找了本oracle是書也是一點也看不懂,或者看了前面幾章,還是不知道怎麼用。其實,從筆者的親身經歷來說,oracle入門很簡單,使用oracle的基本功能也是一件非常簡單的事情。但是想...

oracle 10g系統備份恢復方案

為了保證系統在出現故障時快速恢復,我們的備份策略包括兩個部分,邏輯備份,物理備份。資料庫按歸檔方式執行 歸檔方式和非歸檔方式執行方式優點和缺點比較 1.歸檔方式 優點 可以執行聯機備份,保證資料庫7 24不間斷執行 宕機時,能夠實現資料的完全恢復 缺點 在檢查點發生之後,重做日誌歸檔完成之前,重做日...