偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Oracle數(shù)據(jù)庫(kù)優(yōu)化器的三種類型

數(shù)據(jù)庫(kù) Oracle
以下的文章主要是介紹Oracle數(shù)據(jù)庫(kù)優(yōu)化的三種類型,以及這三種類型的實(shí)際應(yīng)用,以下就是相關(guān)內(nèi)容的詳細(xì)介紹。望你會(huì)有所收獲。

就我個(gè)人而言,我很喜歡Oracle,在是實(shí)際的相關(guān)工作中也對(duì)Oracle數(shù)據(jù)庫(kù)優(yōu)化器的經(jīng)驗(yàn)教訓(xùn)很是喜歡,那么下面就這個(gè)問(wèn)題來(lái)進(jìn)行詳細(xì)探討吧!如果你也是Oracle數(shù)據(jù)庫(kù)優(yōu)化器優(yōu)化的忠誠(chéng)粉絲的話,你不要錯(cuò)過(guò)。

Oracle數(shù)據(jù)庫(kù)優(yōu)化器共有3種:

a. RULE (基于規(guī)則)

b. COST (基于成本)

c. CHOOSE (選擇性)

為了使用基于成本的優(yōu)化器(CBO, Cost-Based Optimizer) , 你必須定期更新統(tǒng)計(jì)信息,以保證Oracle數(shù)據(jù)庫(kù)中的對(duì)象統(tǒng)計(jì)信息(object statistics)的準(zhǔn)確性.

如果Oracle數(shù)據(jù)庫(kù)優(yōu)化器模式設(shè)置為選擇性(CHOOSE),那么實(shí)際的優(yōu)化器模式將和是否運(yùn)行過(guò)analyze命令有關(guān). 如果table已經(jīng)被analyze過(guò), 優(yōu)化器模式將自動(dòng)成為CBO , 反之,數(shù)據(jù)庫(kù)將采用RULE形式的優(yōu)化器。

訪問(wèn)Table的方式

Oracle 采用兩種訪問(wèn)表中記錄的方式:

a. 全表掃描:全表掃描就是順序地訪問(wèn)表中每條記錄. Oracle采用一次讀入多個(gè)數(shù) 據(jù)塊(database block)的方式優(yōu)化全表掃描。

b. 索引掃描:你可以采用基于ROWID的訪問(wèn)方式情況,提高訪問(wèn)表的效率, ROWID包含了表中記錄的物理位置信息.Oracle采用索引(INDEX)實(shí)現(xiàn)了數(shù)據(jù)和存放數(shù)據(jù)的物理位置(ROWID)之間的聯(lián)系. 通常索引提供了快速訪問(wèn)ROWID的方法,因此那些基于索引列的查詢就可以得到性能上的提高.

其中Oracle對(duì)索引又有兩種訪問(wèn)模式.

a)索引唯一掃描 ( INDEX UNIQUE SCAN)大多數(shù)情況下, 優(yōu)化器通過(guò)WHERE子句訪問(wèn)INDEX.

表LOADING有兩個(gè)索引 : 建立在LOADING列上的唯一性索引LOADING_PK和建立在MANAGER列上的非唯一性索引IDX_MANAGER.

 

  1. SELECT loading  
  2. FROM LOADING  
  3. WHERE LOADING = ‘ROSE HILL’;  

 

在內(nèi)部 , 上述SQL將被分成兩步執(zhí)行, 首先 , LOADING_PK 索引將通過(guò)索引唯一掃描的方式被訪問(wèn) , 獲得相對(duì)應(yīng)的ROWID, 通過(guò)ROWID訪問(wèn)表的方式執(zhí)行下一步檢索.如果被檢索返回的列包括在INDEX列中,Oracle數(shù)據(jù)庫(kù)優(yōu)化器將不執(zhí)行第二步的處理(通過(guò)ROWID訪問(wèn)表). 因?yàn)闄z索數(shù)據(jù)保存在索引中, 單單訪問(wèn)索引就可以完全滿足查詢結(jié)果.下面SQL只需要INDEX UNIQUE SCAN 操作.

 

  1. SELECT LOADING  
  2. FROM LOADING  
  3. WHERE LOADING = ‘ROSE HILL’;  

 

b)索引范圍查詢(INDEX RANGE SCAN)適用于兩種情況:

1. 基于一個(gè)范圍的檢索

2. 基于非唯一性索引的檢索

WHERE子句條件包括一系列值, Oracle將通過(guò)索引范圍查詢的方式查詢LODGING_PK . 由于索引范圍查詢將返回一組值, 它的效率就要比索引唯一掃描低一些. 這個(gè)SQL的執(zhí)行分兩步, IDX_MANAGER的索引范圍查詢(得到所有符合條件記錄的ROWID) 和下一步同過(guò)ROWID訪問(wèn)表得到LOADING列的值.

由于IDX_MANAGER是一個(gè)非唯一性的索引,Oracle數(shù)據(jù)庫(kù)不能對(duì)它執(zhí)行索引唯一掃描.由于SQL返回LOADING列,而它并不存在于IDX_MANAGER索引中, 所以在索引范圍查詢后會(huì)執(zhí)行一個(gè)通過(guò)ROWID訪問(wèn)表的操作.WHERE子句中, 如果索引列所對(duì)應(yīng)的值的第一個(gè)字符由通配符(WILDCARD)開(kāi)始, 索引將不被采用.在這種情況下,Oracle將使用全表掃描.以上介紹Oracle數(shù)據(jù)庫(kù)優(yōu)化器。

【編輯推薦】

  1. Oracle存儲(chǔ)過(guò)程的開(kāi)發(fā)的介紹
  2. LTO歸檔解決方案容量、性能和功能介紹
  3. Oracle使用游標(biāo)觸發(fā)器存儲(chǔ)實(shí)操
  4. Oracle自增字段的實(shí)際應(yīng)用
  5. 配置Oracle RAC中應(yīng)注意的問(wèn)題有哪些
責(zé)任編輯:佚名 來(lái)源: 博客園
相關(guān)推薦

2011-01-18 15:35:59

jQueryJavaScriptweb

2010-04-26 12:19:28

Oracle 數(shù)據(jù)庫(kù)

2010-11-19 14:51:09

Oracle數(shù)據(jù)庫(kù)關(guān)閉

2011-05-26 13:16:37

Oracle數(shù)據(jù)庫(kù)備份

2010-04-02 13:15:01

Oracle跟蹤

2010-10-26 13:33:08

Oracle自動(dòng)備份

2009-06-29 18:21:29

Hibernate

2010-05-11 14:08:50

MySQL數(shù)字類型

2018-12-13 20:14:18

物聯(lián)網(wǎng)平臺(tái)物聯(lián)網(wǎng)IOT

2010-04-26 17:15:13

Oracle優(yōu)化器

2022-06-20 08:50:16

TypeScript類型語(yǔ)法

2010-03-30 11:15:26

Oracle數(shù)據(jù)庫(kù)

2009-11-24 18:15:37

博科資訊管理軟件

2009-08-03 17:41:20

ASP.NET Cac

2011-04-12 11:46:26

Oracle優(yōu)化器

2009-11-18 18:16:17

Oracle數(shù)據(jù)庫(kù)優(yōu)化

2010-11-01 11:57:18

DB2客戶端

2013-09-02 15:35:00

2017-06-29 14:12:13

SQL ServerMysqlOracle

2009-11-13 09:39:48

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)