DB2性能調整


一、規則
1.確保有足夠的磁盤(每個 CPU 有 6-10 個磁盤纔是一個好的開端)。

   每個表空間的容器應  該跨越所有可用的磁盤。
   有些表空間,例如 SYSCATSPACE 以及那些表數量不多的表空間,

   不需要展開到所有磁盤上, 而那些具有大型用戶或臨時表的表

    空間則應該跨越所有磁盤。( 表空間)。
2.緩衝池應該佔用可用內存的大約 75% (OLTP) 或 50% (OLAP)( 緩衝池)。
3.應該對所有表執行 runstats,包括系統編目表( Runstats)。
4.使用 Design Advisor 爲 SQL 工作負載推薦索引和檢查索引( Design Advisor)。
5.使用 Configuration Advisor 爲應用程序環境配置數據庫管理器和數據庫 ( Configuration  Advisor)。
6.日誌記錄應該在一個獨立的高速驅動器上進行,

   該驅動器由 NEWLOGPATH 數據庫配置參數指定( Experimenting)。
7.通過頻繁的提交可以增加併發性( SQL 語句調優)。
8.應該增加 SORTHEAP,以避免排序溢出( DBM 和 DB 配置)。
9.對於系統編目表空間和臨時表空間,表空間類型應該爲 SMS,而對於其他表空間,
  表空間類型應爲 DMS( raw device 或者是文件)。
  運行 db2empfa,以便支持用於 SMS 表空間的多頁(multi-page )文件的空間分配。
  這將允許 SMS 表空間一次增長一個區段(Extend),而不是一頁,
  從而可以加快那些大型的插入操作和溢出磁盤的排序操作( 表空間)。
10.對於重複的語句,使用參數標記 ( SQL 語句調優)。


二、參數設置
  1)BUFFPAGE:數據緩衝池,默認250*4K太小,需要修改百兆級.
  2)LOGBUFSZ:日誌緩衝區,默認8*4K太小,改爲1024*4K足夠了.
  3)LOGFILSZ:日誌文件大小,默認1000*4K太小,修改爲10240左右
  4)MINCOMMIT:組提交數,默認爲1即可,

      當運行commit命令時,查詢必須等待日誌緩衝區數 據寫入磁盤後才能進行,
      在發生許多較小的併發事務中,頻繁把少量的日誌寫入磁盤可能導致IO浪費
      可以設置此參數大於1,這樣做可能會對某些應用程序造成更長的延遲時間
      公式:mincommit=每秒鐘完成事務數/10.
  5)LOCKLIST:鎖列表最大存儲量,默認50*4K太小,建議 5000*4K.

  6)MAXFILOP:最大可打開文件數,默認64太小,
      db2 get snapshot for database on db_name
      查看"關閉的文件數"項,若>0則需要增大此參數

  7)CATALOGCACHE_SZ:運行db2 get snapshot for db on sample
     若 目錄高速緩存溢出項大於0則增加參數值
     否則按照如下公式計算比率:
     比率=100- 目錄高速緩存插入*100/目錄高速緩存查詢
     保證命中率大於95%,否則增加
  8)LOCKTIMEOUT:鎖超時時間,單位:秒,默認爲-1,即總是保持鎖,
                應該改爲一個合適的值,oltp爲10秒爲基礎調整,
      olap以60秒爲基礎調整.
  9)num_io_cleaners:CPU個數
  10)num_io_servers:預取程序數目,和cpu個數相同即可,但不應小於默認值3
  
  11)MAXAGENTS:運行命令db2 get snapshot for database manager
      查看“從另一個應用程序竊用的代理程序數”項,
      若值大於0,則應該增加此參數的值

 

發佈了29 篇原創文章 · 獲贊 4 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章