自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

概論Oracle數(shù)據(jù)庫優(yōu)化器

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

本人很喜歡Oracle,在工作中也很喜歡總結(jié)關(guān)于Oracle數(shù)據(jù)庫優(yōu)化器的經(jīng)驗(yàn)教訓(xùn),下面就這個(gè)問題來詳細(xì)說說吧。Oracle數(shù)據(jù)庫優(yōu)化器共有3種:
a.  RULE (基于規(guī)則)  
b. COST (基于成本) 
c. CHOOSE (選擇性)

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

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

Oracle 采用兩種訪問表中記錄的方式:
a. 全表掃描:全表掃描就是順序地訪問表中每條記錄. Oracle采用一次讀入多個(gè)數(shù)      據(jù)塊(database block)的方式優(yōu)化全表掃描。
b. 索引掃描:你可以采用基于ROWID的訪問方式情況,提高訪問表的效率, ROWID包含了表中記錄的物理位置信息.Oracle采用索引(INDEX)實(shí)現(xiàn)了數(shù)據(jù)和存放數(shù)據(jù)的物理位置(ROWID)之間的聯(lián)系. 通常索引提供了快速訪問ROWID的方法,因此那些基于索引列的查詢就可以得到性能上的提高.

其中Oracle對索引又有兩種訪問模式.

a)索引唯一掃描 ( INDEX UNIQUE SCAN)大多數(shù)情況下, 優(yōu)化器通過WHERE子句訪問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 索引將通過索引唯一掃描的方式被訪問 , 獲得相對應(yīng)的ROWID, 通過ROWID訪問表的方式執(zhí)行下一步檢索.如果被檢索返回的列包括在INDEX列中,Oracle將不執(zhí)行第二步的處理(通過ROWID訪問表). 因?yàn)闄z索數(shù)據(jù)保存在索引中, 單單訪問索引就可以完全滿足查詢結(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將通過索引范圍查詢的方式查詢LODGING_PK . 由于索引范圍查詢將返回一組值, 它的效率就要比索引唯一掃描低一些. 這個(gè)SQL的執(zhí)行分兩步, IDX_MANAGER的索引范圍查詢(得到所有符合條件記錄的ROWID) 和下一步同過ROWID訪問表得到LOADING列的值. 由于IDX_MANAGER是一個(gè)非唯一性的索引,數(shù)據(jù)庫不能對它執(zhí)行索引唯一掃描.由于SQL返回LOADING列,而它并不存在于IDX_MANAGER索引中, 所以在索引范圍查詢后會執(zhí)行一個(gè)通過ROWID訪問表的操作.WHERE子句中, 如果索引列所對應(yīng)的值的第一個(gè)字符由通配符(WILDCARD)開始, 索引將不被采用.在這種情況下,Oracle將使用全表掃描.以上介紹Oracle數(shù)據(jù)庫優(yōu)化器。

【編輯推薦】

  1. 簡討Oracle pctused參數(shù)
  2. 巧學(xué)Oracle數(shù)據(jù)庫聯(lián)機(jī)
  3. Provider for Oracle簡介
  4. 探討Oracle Server客戶端組態(tài)
  5. 概括SQL Server實(shí)時(shí)查詢Oracle數(shù)據(jù)庫
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

2011-05-20 10:30:20

ORACLE數(shù)據(jù)庫性能優(yōu)化

2011-05-18 09:39:19

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

2010-05-10 15:50:39

Oracle數(shù)據(jù)庫性能

2010-04-09 16:51:24

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

2011-07-27 08:56:32

Oracle數(shù)據(jù)庫綁定變量軟解析

2010-04-09 15:08:17

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

2010-04-12 16:35:15

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

2010-04-27 16:41:07

Oracle性能

2010-11-15 16:13:24

Oracle數(shù)據(jù)庫性能

2009-05-14 10:16:36

Oracle優(yōu)化磁盤

2011-07-20 16:28:54

Oracle數(shù)據(jù)庫shared pool

2010-03-25 15:46:18

云計(jì)算

2010-02-01 10:10:41

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

2014-06-10 15:07:19

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

2010-04-21 14:00:48

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

2011-05-18 11:19:37

Oracle優(yōu)化停機(jī)時(shí)間

2009-11-16 13:24:34

Oracle數(shù)據(jù)庫服務(wù)

2011-05-25 10:56:19

Oracle數(shù)據(jù)庫Unix環(huán)境優(yōu)化

2010-04-23 09:23:44

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

2011-05-26 10:30:12

Oracle數(shù)據(jù)庫約束
點(diǎn)贊
收藏

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