db2資料庫慢
A. 怎麼提高DB2查詢速度
如果不考慮硬體的情況下,
優化也就是那幾個方向,,,
1、優化索引
2、優化表
3、優化語句,,,
就你的實際情況來說,
1、首先,看需不需要給你的幾個關聯欄位加上索引
2、你的left join 實際情況中,能不能用inner join,因為inner join的查詢范圍比left join要小
3、最後一個<>0,看能不能替換成= or的情況
B. db2資料庫查詢很慢
設置下DB2實例參數,DB2SET -ALL試試,對於單獨的一個資料庫可以進行配置參數,看看有沒有打開增量備份
C. db2 資料庫 會隨著表變大 插入的速度變慢嗎
對於表的數據量在百萬上的使用delete from table_name 時候,會很慢很慢,難以接受。而且delete刪除多張表數據時更難以接受。找了下方法,發現非常的快。步驟如下:
www.2cto.com
(1)、在C盤上新建一個名為【empty.del】的文件,此文件是空文件
(2)、命令行連接DB2資料庫
DB2 connect to TEST_36 USER administrator using password
(3)、執行刪除
DB2 import from empty.del of del replace into table_name
D. db2資料庫,簡單一條insert語句有時也要執行1秒以上,從什麼角度去分析慢在什麼地方
1、硬體性能
資料庫伺服器的配置問題,比如CPU/內存等,比如在PC上安裝DB2,別說insert語句,就是做個簡單的查詢就要很久,因為計算機緩不過嘛。
2、軟體問題
insert的表是不是有索引,如果索引復雜或者建的不當,插入語句時會很慢的。
E. 關於DB2資料庫的參數調優技巧
在開始前 請關閉IBM目錄伺服器 將上下文切換到IBM目錄伺服器DB 實例擁有者 一般是ldapdb 用戶 比如
在Unix系統里 輸入
su ldapdb
在Windows系統里 輸入
db cmdset DB INSTANCE=ldapdb
為了調節DB 參數 運行db tunings sh腳本 你可以在這里下載:// sofare ibm /ibmdl/pub/sofare/tivoli_support/misc/Security/AMeB/_am /tuning_guide_scripts tar
或者通過ftp地址
ftp://ftp sofare ibm /sofare/tivoli_support/misc/Security/AMeB/am /tuning_guide_scripts tar
Web頁面需要注冊用戶名和密碼
這個腳本的文件系統擁有者必須是DB 實例擁有者 一般就是ldapdb 用戶 文件系統組應該和實例擁有者相同(一般是dbsysadm) 腳本必須在DB 實例擁有者的上下文中使用
腳本中的ibmdefaultbp和ldapbp參數控制著DB 的緩沖池 db _turnings sh腳本 設置了DB 緩沖池的建議大小 其他一些可選的設置在腳本的注釋里寫明了 IBM目錄伺服器的性能隨著DB 緩沖池的增長而提高 然而在大多數情況下 通過這樣的參數調節方式 你可以預見不超過 %的性能提高
DB 緩沖池是DB 緩存數據表和索引的地方 DB 用戶使用索引來在查詢時迅速找到該獲取哪個錶行項 需要更多信息 請參考IBM Directory Server Tuning Guide
顯示和驗證當前設置
輸入如下命令來顯示當前的DB 參數調節設置的結果
db get database configuration for ldapdb |
egrep DBHEAP|SORTHEAP|MAXLOCKS|MINMIT|UTIL_HEAP_SZ|APPLHEAPSZ
db connect to ldapdb
db select bpname npages pagesize from syscat bufferpools
db terminate
如果某個堆配置參數過低 就將出現一些功能性的問題 輸入如下命令來顯示當前的堆參數設置
db get db cfg for ldapdb | grep HEAP
下面是一個使用了推薦值的多種堆參數的輸出例子顯示
Database heap ( KB) (DBHEAP) =
Utilities heap size ( KB) (UTIL_HEAP_SZ) =
Max appl control heap size ( KB) (APP_CTL_HEAP_SZ) =
Sort list heap ( KB) (SORTHEAP) =
sql statement heap ( KB) (STMTHEAP) =
Default application heap ( KB) (APPLHEAPSZ) =
Statistics heap size ( KB ) (STAT_HEAP_SZ) =
如果一個堆參數小於最小值 輸入如下命令將其增大到最小值
db update db cfg for ldapdb using parm_name parm_value
這里parm_name是上文輸出中的第三欄的字樣(無括弧) parm_value是最後一欄的值
如果堆參數設置的過高或者過低 IBM的目錄伺服器都會以失效來提示出現了問題 在這種情況下 需要查看諸如IBM Directory Server V (IDS )的cli error文件或者IBM Tivoli Directory Server V (IDS v )的db cli log或者其他一些文件 在IDS v 系統中 該文件預設目錄在Solaris的/var/ldap/和AIX的/tmp中 在IDS v 和後來系統中 Solaris和AIX的預設目錄都是/var/ldap
注意db look能夠在一條命令下提供關於資料庫及其配置的足夠多的信息 例子如下
db look d ldapdb u ldapdb p o output_file
output_file是存儲結果的文件位置
關於IBM目錄伺服器運行的警告
DB 參數調節使用了db terminate 如果當該命令發出 IBM目錄伺服器slapd或ibmslapd進程在運行 它將阻止伺服器的部分功能 所有緩存的搜索看起來反應正常 其他的搜索將會簡單的變為無結果或者出現錯誤信息 恢復功能將會重啟IBM目錄伺服器 因此最好是在調節DB 參數時關閉IBM目錄伺服器
關於緩沖池內存使用的警告
如果任何的緩沖池被設置過高 DB 將會因為缺少足夠內存而無法啟動 如果出現該問題將會有一個核心轉儲的文件 但是通常沒有錯誤信息
在AIX系統里 系統錯誤日誌將會報告一個內存分配失敗 查看這個日誌請輸入
errpt a | more
使用太大的緩沖池大小來恢復一個被分在系統里的資料庫將會導致恢復失敗 查看//publib boulder ibm /infocenter/tivihelp/v r /topic/ ibm itame doc_ /am _perftune #idtrouble來解決這個問題
如果DB 因為緩沖池過大而無法啟動 請重新調節DB 參數
關於MINMIT的警告
lishixin/Article/program/DB2/201311/11229
F. DB2資料庫更新數據緩慢,求優化建議
你這樣寫很不好,看起來寫的是一句sql,反而速度慢下來了。首先row_number() over() as rownum毫無必要,這樣來分頁效率不高。然後能不用*就不用*查詢。在大數據量和列很多的情況下,會慢很多。
而且你也說了,更新1W條數據需要半個小時。那麼可以採用存儲過程或者程序來訪問。這樣會快很多,推薦採用存儲過程,110W條數據,就算重建索引等,更新一條應該在200ms一下,一萬條,不會那麼久的。希望能幫助得到你。
你這樣寫sql語句,執行時間太久了,會造成假死現象,這樣很不好。