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

對(duì)DB2性能調(diào)優(yōu)中的設(shè)計(jì)并配置數(shù)據(jù)庫(kù)的描述

數(shù)據(jù)庫(kù)
以下的文章主要描述的是DB2性能調(diào)優(yōu)之設(shè)計(jì)并配置數(shù)據(jù)庫(kù),以及對(duì)DB2性能調(diào)優(yōu)之設(shè)計(jì)并配置數(shù)據(jù)庫(kù)中的相關(guān)問(wèn)題的描述。

此文章主要講述的是DB2性能調(diào)優(yōu)之設(shè)計(jì)并配置數(shù)據(jù)庫(kù),在實(shí)際操作中很多數(shù)據(jù)庫(kù)設(shè)計(jì)與配置選項(xiàng)可以影響查詢性能。對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)的更多建議參考“ Planning your Physical Database Design ”***實(shí)踐文章。

 

使用約束來(lái)提高查詢優(yōu)化

考慮定義的唯一性,檢查并參考一致性約束。這些約束提供了語(yǔ)義信息,允許 DB2 優(yōu)化器重寫查詢來(lái)評(píng)估連接,通過(guò)連接來(lái)降低聚合和 FETCH FIRST N ROWS,去掉不必要的 DISTINCT 選項(xiàng)被和一些其它的優(yōu)化。當(dāng)應(yīng)用程序可以保證它自己的關(guān)系時(shí),信息約束也可以被用來(lái)檢查并參考一致性約束。相同的優(yōu)化也是可以的。

當(dāng)更新(插入或刪除)行的時(shí)候,來(lái)自數(shù)據(jù)庫(kù)管理器的強(qiáng)制約束可能導(dǎo)致很高的系統(tǒng)開銷,尤其在更新很多有一致性約束的行的時(shí)候。如果一個(gè)應(yīng)用程序在更新一行之前已經(jīng)驗(yàn)證的信息,這樣使用信息約束比起正常的約束更有效

例如,考慮 2 個(gè)表 DAILY_SALES 和 CUSTOMER 。在 CUSTOMER 表中的每一行都有一個(gè)唯一的客戶鍵值(CUST_KEY)。 DAILY_SALES 包含一個(gè) CUST_KEY 列并且每一行都引用一個(gè) CUSTOMER 表中的客戶鍵。可以創(chuàng)建一個(gè)參考一致性約束來(lái)防止在 CUSTOMER 和 DAILY_SALES 之間發(fā)生 1:N 的關(guān)系。

如果應(yīng)用程序要強(qiáng)制約束這個(gè)關(guān)系,可以創(chuàng)建一個(gè)信息化的約束。那么下面的查詢避免了在 CUSTOMER 和 DAILY_SALES 之間進(jìn)行連接,因?yàn)闆]有從 CUSTOMER 獲取任何列,而且來(lái)自于 DAILY_SALES 的每一行都可以在 CUSTOMER 里面找到與之匹配的行,所以查詢優(yōu)化器將自動(dòng)刪除連接

  1. SELECT AMT_SOLD, SALE PRICE, PROD_DESC   
  2. FROM DAILY_SALES, PRODUCT, CUSTOMER   
  3. WHERE   
  4. DAILY_SALES.PROD_KEY = PRODUCT.PRODKEY AND   
  5. DAILY_SALES.CUST_KEY = CUSTOMER.CUST_KEY  

應(yīng)用程序必須執(zhí)行信息約束,否則查詢可能返回不正確的結(jié)果。在上面的例子中,如果行存在于 DAILY_SALES 中,在 CUSTOMER 表中卻找不到相應(yīng)的客戶鍵,那么上面的查詢返回的行可能不正確。

 

在復(fù)雜查詢中使用 REOPT 綁定選項(xiàng)和輸入變量

在一個(gè)在線事務(wù)處理(OLTP)環(huán)境的中輸入變量有較好的語(yǔ)句準(zhǔn)備時(shí)間是關(guān)鍵,在這樣的環(huán)境中語(yǔ)句往往比較簡(jiǎn)單而且查詢計(jì)劃選擇也很簡(jiǎn)單。使用不同的輸入變量多次運(yùn)行相同的語(yǔ)句可以復(fù)用在動(dòng)態(tài)語(yǔ)句高速緩存中編譯了的訪問(wèn)片段,避免了由于隨時(shí)更改輸入值而造成昂貴的 SQL 語(yǔ)句編譯開銷。

然而,輸入變量對(duì)復(fù)雜的查詢負(fù)載也會(huì)造成問(wèn)題,它們的查詢計(jì)劃選擇非常復(fù)雜,因此優(yōu)化器需要更多的信息來(lái)做出好的決定。而且,語(yǔ)句編譯時(shí)間通常是總運(yùn)行時(shí)間中的一個(gè)很小組成部分。因?yàn)?BI 查詢通常不會(huì)重復(fù),所以并沒有從動(dòng)態(tài)語(yǔ)句高速緩存上得到好處。

如果在一個(gè)復(fù)雜查詢工作負(fù)載中需要使用輸入變量,請(qǐng)考慮使用 REOPT(ALWAYS) BIND 選項(xiàng)。當(dāng)輸入DB2性能調(diào)優(yōu)變量值是已知的,REOPT BIND 選項(xiàng)從 PREPARE 到 OPEN 或執(zhí)行過(guò)程中推遲了語(yǔ)句編譯。變量值被傳遞到 SQL 編譯器中,這樣優(yōu)化器可以使用這些便利來(lái)計(jì)算一個(gè)更精確的選擇評(píng)估。 REOPT(ALWAYS) 表示所有執(zhí)行語(yǔ)句都應(yīng)該被預(yù)編譯。

REOPT(ALWAYS) 也可以被用于涉及特殊寄存器的復(fù)雜查詢,比如 "WHERE TRANS_DATE = CURRENT DATE - 30 DAYS" 。如果輸入變量對(duì) OLTP 工作負(fù)載造成較差的訪問(wèn)計(jì)劃選擇,并且 REOPT(ALWAYS) 選項(xiàng)因?yàn)檎Z(yǔ)句編譯造成過(guò)多的開銷,那么考慮對(duì)挑選過(guò)的查詢使用 REOPT(ONCE) 。

REOPT(ONCE) 推遲語(yǔ)句的編譯直到***數(shù)據(jù)變量被綁定。使用這個(gè)***輸入變量值編譯并優(yōu)化 SQL 語(yǔ)句。后續(xù)使用不同的值來(lái)運(yùn)行的語(yǔ)句將重用基于***個(gè)輸入編譯的查詢片段。這是一個(gè)好方法 , 如果***輸入變量代表了后續(xù)的輸入值,并且在輸入值未知的情況下比起優(yōu)化器使用不同的值進(jìn)行評(píng)估,它提供個(gè)了一個(gè)更好的查詢?cè)L問(wèn)計(jì)劃 .

上述的相關(guān)內(nèi)容就是對(duì)DB2性能調(diào)優(yōu):設(shè)計(jì)并配置你的數(shù)據(jù)庫(kù)的部分內(nèi)容的描述,希望會(huì)給你帶來(lái)一些幫助在此方面。

【編輯推薦】

  1. DB2建立數(shù)據(jù)庫(kù)分區(qū)要用的命令有哪些?
  2. DB2 9.5的數(shù)據(jù)庫(kù)內(nèi)存保護(hù),輕松掌握!
  3. DB2強(qiáng)制優(yōu)化器的使用“竅門”不得不看
  4. DB2快照函數(shù)如何正確理解?
  5. 使用DB2臨時(shí)表時(shí)哪些事項(xiàng)是值得關(guān)注?

 

責(zé)任編輯:佚名 來(lái)源: itmop
相關(guān)推薦

2010-08-11 12:43:45

DB2數(shù)據(jù)庫(kù)調(diào)優(yōu)

2010-08-11 14:32:55

DB2數(shù)據(jù)庫(kù)調(diào)優(yōu)

2010-08-02 11:11:41

DB2性能調(diào)優(yōu)

2010-08-02 08:40:43

DB2數(shù)據(jù)庫(kù)性能

2010-07-27 14:33:24

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

2010-08-17 17:29:06

DB2性能優(yōu)化

2011-03-25 15:54:02

DB2數(shù)據(jù)庫(kù)初始調(diào)優(yōu)設(shè)計(jì)

2010-08-03 13:29:44

DB2 9數(shù)據(jù)庫(kù)優(yōu)點(diǎn)

2010-08-18 09:42:11

DB2性能調(diào)優(yōu)

2010-08-17 17:23:42

DB2性能

2010-08-04 15:59:29

2010-08-04 13:30:49

2010-08-17 16:24:32

IBM DB2數(shù)據(jù)庫(kù)

2010-08-18 13:49:01

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

2010-08-20 10:48:35

DB2 UDB v8.

2010-07-28 09:42:57

DB2性能

2010-08-25 10:50:48

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

2010-09-06 08:52:25

DB2數(shù)據(jù)庫(kù)性能

2010-08-06 09:39:27

DB2數(shù)據(jù)庫(kù)分區(qū)

2010-08-18 17:32:34

DB2數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

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