獲得關(guān)于設(shè)計索引以及數(shù)據(jù)分區(qū)鍵、物化查詢表、IBM® DB2® Universal Database™(DB2 UDB)多維聚類的專家?guī)椭esign Advisor 是 DB2 UDB 內(nèi)置的,它能提供您所需的幫助。下面介紹了如何將它用于 OLTP 數(shù)據(jù)庫。
簡介
DB2 UDB V8.2 引入了一種名為 Design Advisor 的新工具,該工具使用范圍更廣,可用來替代 Index Advisor。除了索引外,Design Advisor 還提供關(guān)于物化查詢表(MQT)、多維集群表(MDC)和數(shù)據(jù)分區(qū)功能(Data Partitioning Feature,DPF)分區(qū)鍵的建議。 即使對于那些只對索引感興趣的 DBA,Design Advisor 也好于先前版本的 Index Advisor。本文是由兩部分組成的一個系列的第 1 部分,旨在探索 Design Advisor 在在線事務(wù)處理(online transaction processing,OLTP)數(shù)據(jù)庫方面的使用,主要關(guān)注的是如何設(shè)計適當(dāng)?shù)乃饕?,以取得較高的性能。
通過介紹一些特定的例子、考察一些陷阱和常見問題,并突出強調(diào) V8.2 的增強,我們將演示該工具的效用。第 2 部分將介紹關(guān)于 MQT、MDC 和 DPF 分區(qū)鍵的更多細節(jié),重點分析數(shù)據(jù)倉庫環(huán)境。
Design Advisor 的價值
Design Advisor 所提供的建議能與數(shù)據(jù)庫調(diào)優(yōu)專家的建議相媲美。對于非專家來說,該工具的好處是可以獲得更好的設(shè)計。對于專家來說,Design Advisor 可以節(jié)省他們寶貴的時間,因為 Design Advisor 可以提供一個初始的設(shè)計,然后由專家進一步改進設(shè)計。Design Advisor 還可以提供對專家的設(shè)計的獨立確認(rèn)。
Design Advisor 可以使性能提高多少百分比呢?這取決于初始設(shè)計的質(zhì)量。然而,提高的幅度是很明顯的。題為 DB2 UDB: The Autonomic Computing Advantage 的 DB2 Magazine 電子書中包含一個完整的案例研究,該研究顯示,性能提升了 84%;也就是說,設(shè)計經(jīng)過改進之后,對于相同的工作負(fù)載,現(xiàn)在的運行時間是原來的 15%。
Design Advisor 何時有幫助
在很多情況下,DBA 都希望使用 Design Advisor。其中兩種重要的情況是,在生產(chǎn)之前使用 Design Advisor,以及在將一個系統(tǒng)投入生產(chǎn)之后使用它。關(guān)于在生產(chǎn)之前何時使用 Design Advisor 的例子包括:
- 在應(yīng)用程序開發(fā)的初始階段創(chuàng)建一組新的索引。
- 在應(yīng)用程序系統(tǒng)測試期間改善性能不佳的查詢。
還可以將 Design Advisor 用于生產(chǎn)系統(tǒng),根據(jù)以下情況更改索引:
- 實際生產(chǎn)情況與開發(fā)期間的估計有差別。例如,某一列被訪問的頻率超過預(yù)期;某個表遠遠大于預(yù)期;某些查詢比預(yù)期執(zhí)行得更頻繁。
- 在系統(tǒng)的運行生命周期中模式設(shè)計發(fā)生了改變。應(yīng)用程序在其運行生命周期中常常會得到調(diào)整,例如為生成報告而添加一個新的列或新的查詢。
- 數(shù)據(jù)庫老化。隨著數(shù)據(jù)庫的老化,性能將逐漸下降,因為表會越來越大,使用模式也發(fā)生了變化,并且工作量也有所增加。
Design Advisor 經(jīng)常與其他 DB2 特性一起使用。例如:
- Health Monitor。您可以設(shè)置 Health Monitor,使之在出現(xiàn)排序溢出之類的情況時發(fā)出警報。然后采用 Design Advisor 來幫助發(fā)現(xiàn)有助于緩解這種性能下降的索引。
- Visual Explain。您可能正在使用 Visual Explain 或相關(guān)特性來檢查查詢訪問計劃。您也許注意到被掃描的表過多。那么這時可以使用 Design Advisor,看看索引是否能導(dǎo)致不需要掃描那么多表的訪問計劃。
Design Advisor 概述以及 V8.2 中的新特性
您可以將 Design Advisor 作為一種 GUI 工具,或者通過命令行來使用它。在 V8.2 中,您可以從一個新的地方來訪問這個 GUI。在 Control Center 中,可以右擊您想要處理的數(shù)據(jù)庫。在彈出的菜單中,選擇 Design Advisor...。
命令行命令仍然是: db2advis。是使用 GUI 還是使用命令行?這基本上取決于個人偏好。兩者在功能上差別很小。
確定需要使用 Design Advisor 之后,請遵循下面列出的步驟來使用該工具。對于每一步,我們列出了 V8.2 中適用于 OLTP 數(shù)據(jù)庫(其中最相關(guān)的就是索引)的一些關(guān)鍵的增強。
表 1. V8.2 中的新特性
步驟 |
V8.2 中的新特性 |
1. 收集和描述提供給 Design Advisor 的工作負(fù)載 |
該工具支持其他提供工作負(fù)載的方法:(1) 在 GUI 中從一個文件裝載工作負(fù)載,或者 (2) 從 Event Monitor 獲得工作負(fù)載 |
2. 決定何時以及如何運行該工具 |
由于采用了新的工作負(fù)載壓縮技術(shù),所以運行該工具時所需的資源更少 |
3. 回顧建議 |
(1) Design Advisor 現(xiàn)在考慮更大范圍的索引類型,包括:雙向索引和帶 INCLUDE 列的 UNIQUE 索引。(2) 有更多關(guān)于建議的詳細信息:例如,與各條 SQL 語句相關(guān)的改進 |
4. 后續(xù)步驟 |
您可以生成關(guān)于建議的一個報告,并將其保存到一個文件中 |