成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle 10g數據庫查找數據的方法總結

數據庫 Oracle
本文我們主要介紹了Oracle 10g數據庫中查找數據的方法,了解了這些查找數據的方法,有助于我們讀懂執行計劃,以便通過執行計劃來優化數據庫。希望能夠對您有所幫助。

我們知道,Oracle 10g數據庫提供了更強大的查找數據的方法,提高了查詢數據庫的效率。那么它是如何查找數據的呢?查找數據的方式有幾種呢?本文我們就來介紹這一部分內容,接下就讓我們來一起了解一下吧。

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 plan  for  select empno,ename from big_emp。

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

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

 

  1. create   index i_emp on emp(empno, ename);  
  2.  
  3. select   /* + index_ss(emp i_emp) */   job from emp where ename = ' 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個。

關于Oracle 10g查找數據的方式就介紹這么多了,希望本次的介紹能夠對您有所收獲!

【編輯推薦】

  1. Oracle數據庫如何創建DATABASE LINK?
  2. 管理員不能刪除其他用戶建立的DB Link的解決
  3. SQL Server數據庫對連接字符串的安全性處理
  4. Oracle數據庫對DDL語句和DML語句的事務管理
  5. Google Leveldb在Linux下的編譯及在C++中的應用
責任編輯:趙鵬 來源: 火魔網
相關推薦

2009-11-19 15:57:34

Oracle 10g數

2010-04-12 13:34:42

Oracle 10g

2010-02-03 16:16:49

Linux Oracl

2011-03-29 09:56:48

Oracle數據庫10SQL

2011-03-29 10:09:41

Oracle 10g虛擬數據庫

2010-04-16 15:57:54

Oracle 10g

2011-08-23 18:04:16

Oracle 10g數據泵

2011-08-09 13:14:37

Oracle 10g數據庫閃回

2010-09-17 09:39:31

Oracle 10g

2010-04-07 09:39:18

Oracle 10G

2010-04-13 10:07:19

Oracle 10G

2011-08-30 15:57:15

Oracle 10gUNDO_RETENT

2009-01-20 23:13:24

Oracle 10G數據庫

2010-04-13 09:58:52

Oracle 10G

2011-04-12 10:09:33

Oracle數據庫關閉

2010-04-09 15:59:24

Oracle 10g

2010-02-22 14:03:59

2011-08-17 13:37:27

Windows7卸載Oracle 10

2010-04-28 10:45:24

Oracle10g

2010-05-05 15:52:36

Oracle 10G
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 影音av| 欧美日产国产成人免费图片 | 精品成人av | 日韩网| 国产羞羞视频在线观看 | 日韩在线免费 | 91天堂网| 在线国产一区二区 | 国产欧美日韩一区 | 免费黄色成人 | 国产偷久久一级精品60部 | 国产一区二区三区在线免费观看 | 欧美日韩在线不卡 | 欧美精品网站 | 日韩三级一区 | 国产99久久精品一区二区永久免费 | 麻豆一区一区三区四区 | 精品美女| 国产成人精品一区二区三区在线 | 欧美1区 | 成人福利视频 | 免费黄色片在线观看 | 久久精品91久久久久久再现 | 国产精品一区二区三区在线播放 | 国产亚洲欧美另类一区二区三区 | 日韩成人影院 | 99re在线视频 | 国产成人免费观看 | 国产色| 日韩一级在线 | wwww.8888久久爱站网 | 自拍偷拍亚洲一区 | 欧美日韩手机在线观看 | 成人精品在线视频 | 亚洲成人黄色 | 91在线视频观看 | japanhd美女动 | 欧美1区| 激情视频一区 | 97国产精品视频 | 国产精品久久久久久久久久久久 |