DB2使用db2advis工具調優SQL

2021-09-24 03:43:13 字數 1071 閱讀 7833

**

在之前的博文中說了如何去檢視sql的訪問計畫,當我們發現當前計畫需要調整或者想看看有無優化空間時,我們可以使用db2advis工具,該工具是針對使用者提供的工作負載(這裡的工作負載就是一組sql語句的組合)而給出的優化建議,優化建議包括建立索引,mqt,mdc以及表重分布等,優化建議以ddl的形式提供,使用者直接執行即可。另外還會給出該工作負載未使用的索引及mqt等建議刪除的資訊。

目前個人感覺索引的建議比較有用,另外也不必刪除索引吧,因為並不是只有當前的這個工作負載。

1.指定單條sql語句

說明:

2.針對db2快照中捕獲的一組sql

說明:首先重置資料庫監視器,然後讓應用程式執行足夠長的時間,以使db2快照可以捕獲到足夠的動態sql語句,然後使用db2advis工具估計工作負載並給出建議。

3.使用者提供工作負載檔案,db2advis根據此檔案給出建議

說明:-i指定用於分析的工作負載檔案。

工作負載檔案說明:

定義sql語句的執行頻率:「–#set frequency 100」

定義注釋:「–comment「

現在遇到的問題是不管使用單條sql方式還是定義工作負載檔案方式,db2advis不會給出建立索引的建議

此問題已經解決,原來是建立索引所分配的空間不足導致不給出任何建議,同樣的sql語句,首先使用

沒有給出任何建議,但是在建議的開頭有兩行:

total disk space needed for initial set [0.000]mb

total disk space constrained to [967.930]mb

當我使用另乙個引數時:

給出了我預期的建議,建議建立乙個索引,同樣在建議的開頭有兩行:

total disk space needed for initial set [1453.513]mb

total disk space unconstrained

總結:使用了選項-l -1將不限制建立索引所占用的空間,預設是總空間的20%,超過的話將不給出建立索引的建議。

DB2利用db2advis進行查詢優化

一 登陸db2 su db2inst1db2 connect to 資料庫名 user 使用者名稱using密碼 二 建立sql檔案 cd mkdir p test cd test vi test.sql test.sql select name,age,from select from selec...

關於DB2的使用(DB2資料命令)

公司所用的資料庫有金倉和db2 首先要用命令視窗直接開啟db2需要在cmd中輸入 db2cmd 1 啟動db2資料庫 db2start 2 連線資料庫 db2 connect to 資料庫名稱 3 建立資料庫 db2 create db 資料庫名稱 4 刪除資料庫 db2 drop db 資料庫名稱...

db2使用總結

tableid 413 24 檢視資料庫管理配置環境資訊 get db cfg for nm1226 show detail 25 更改locklist update db cfg for dbname using locklist 100000 26 更改maxlocks update db cf...