當前位置:首頁 » 數據倉庫 » 資料庫配置調優
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫配置調優

發布時間: 2022-12-31 00:50:33

❶ 怎麼進行mysql資料庫優化

有八個方面可以對mysql進行優化:
1、選取最適用的欄位屬性
MySQL可以很好的支持大數據量的存取,但是一般說來,資料庫中的表越小,在它上面執行的查詢也就會越快。因此,在創建表的時候,為了獲得更好的性能,我們可以將表中欄位的寬度設得盡可能小。
2. 使用連接(JOIN)來代替子查詢(Sub-Queries)
MySQL從4.1開始支持SQL的子查詢。這個技術可以使用SELECT語句來創建一個單列的查詢結果,然後把這個結果作為過濾條件用在另一個查詢中。
3、使用聯合(UNION)來代替手動創建的臨時表
MySQL從4.0的版本開始支持union查詢,它可以把需要使用臨時表的兩條或更多的select查詢合並的一個查詢中。在客戶端的查詢會話結束的時候,臨時表會被自動刪除,從而保證資料庫整齊、高效。
4、事務
盡管我們可以使用子查詢(Sub-Queries)、連接(JOIN)和聯合(UNION)來創建各種各樣的查詢,但不是所有的資料庫操作都可以只用一條或少數幾條SQL語句就可以完成的。更多的時候是需要用到一系列的語句來完成某種工作。但是在這種情況下,當這個語句塊中的某一條語句運行出錯的時候,整個語句塊的操作就會變得不確定起來。設想一下,要把某個數據同時插入兩個相關聯的表中,可能會出現這樣的情況:第一個表中成功更新後,資料庫突然出現意外狀況,造成第二個表中的操作沒有完成,這樣,就會造成數據的不完整,甚至會破壞資料庫中的數據。要避免這種情況,就應該使用事務,它的作用是:要麼語句塊中每條語句都操作成功,要麼都失敗
5、鎖定表
盡管事務是維護資料庫完整性的一個非常好的方法,但卻因為它的獨占性,有時會影響資料庫的性能,尤其是在很大的應用系統中。由於在事務執行的過程中,資料庫將會被鎖定,因此其它的用戶請求只能暫時等待直到該事務結束。其實,有些情況下我們可以通過鎖定表的方法來獲得更好的性能。
6、使用外鍵
鎖定表的方法可以維護數據的完整性,但是它卻不能保證數據的關聯性。這個時候我們就可以使用外鍵。
7、使用索引
索引是提高資料庫性能的常用方法,它可以令資料庫伺服器以比沒有索引快得多的速度檢索特定的行,尤其是在查詢語句當中包含有MAX(),MIN()和ORDERBY這些命令的時候,性能提高更為明顯。
8、優化的查詢語句
絕大多數情況下,使用索引可以提高查詢的速度,但如果SQL語句使用不恰當的話,索引將無法發揮它應有的作用。

❷ 資料庫調優的方法有哪些

1.引言 資料庫調優可以使資料庫應用運行得更快,它需要綜合考慮各種復雜的因素。將數據均 勻分布在磁碟上可以提高I/O 利用率,提高數據的讀寫性能;適當程度的非規范化可以改善 系統查詢性能;建立索引和編寫高效的SQL 語句能有效避免低性能操作;通過鎖的調優解 決並發控制方面的性能問題。 資料庫調優技術可以在不同的資料庫系統中使用,它不必糾纏於復雜的公式和規則,然 而它需要對程序的應用、資料庫管理系統、查詢處理、並發控制、操作系統以及硬體有廣泛 而深刻的理解。 2.計算機硬體調優 2.1 資料庫對象的放置策略 利用資料庫分區技術,均勻地把數據分布在系統的磁碟中,平衡I/O 訪問,避免I/O 瓶頸: (1)訪問分散到不同的磁碟,即使用戶數據盡可能跨越多個設備,多個I/O 運轉,避免 I/O 競爭,克服訪問瓶頸;分別放置隨機訪問和連續訪問數據。 (2)分離系統資料庫I/O 和應用資料庫I/O,把系統審計表和臨時庫表放在不忙的磁碟 上。 (3)把事務日誌放在單獨的磁碟上,減少磁碟I/O 開銷,這還有利於在障礙後恢復,提 高了系統的安全性。 (4)把頻繁訪問的「活性」表放在不同的磁碟上;把頻繁用的表、頻繁做Join的表分別 放在單獨的磁碟上,甚至把頻繁訪問的表的欄位放在不同的磁碟上,把訪問分散到不同的磁 盤上,避免I/O 爭奪。 2.2 使用磁碟硬體優化資料庫 RAID (獨立磁碟冗餘陣列)是由多個磁碟驅動器(一個陣列)組成的磁碟系統。通過將磁碟陣列當作一個磁碟來對待,基於硬體的RAID允許用戶管理多個磁碟。使用基於硬體的 RAID與基於操作系統的RAID相比較,基於硬體的RAID能夠提供更佳的性能。如果使用基於操作系統的RAID,那麼它將占據其他系統需求的CPU周期;通過使用基於硬體的RAID, 用戶在不關閉系統的情況下能夠替換發生故障的驅動器。 SQL Server 一般使用RAID等級0、1 和5。 RAID 0 是傳統的磁碟鏡象,陣列中每一個磁碟都有一個或多個磁碟拷貝,它主要用來 提供最高級的可靠性,使RAID 0成倍增加了寫操作卻可以並行處理多個讀操作,從而提高 了讀操作的性能。 RAID 1 是磁碟鏡像或磁碟雙工,能夠為事務日誌保證冗餘性。 RAID 5帶奇偶的磁碟條帶化,即將數據信息和校驗信息分散到陣列的所有磁碟中,它可以消除一個校驗盤的瓶頸和單點失效問題,RAID 5 也會增加寫操作,也可以並行處理一個讀操作,還 可以成倍地提高讀操作的性能。 相比之下,RAID 5 增加的寫操作比RAID 0 增加的要少許多。在實際應用中,用戶的讀操作要求遠遠多於寫操作請求,而磁碟執行寫操作的速度很快,以至於用戶幾乎感覺不到增加的時間,所以增加的寫操作負擔不會帶來什麼問題。在性能較好的伺服器中一般都會選擇使用RAID 5 的磁碟陣列卡來實現,對於性能相對差一些的伺服器也可利用純軟體的方式來實現RAID 5。 3.關系系統與應用程序調優 3.1 應用程序優化 從資料庫設計者的角度來看,應用程序無非是實現對數據的增加、修改、刪除、查詢和體現數據的結構和關系。設計者在性能方面的考慮因素,總的出發點是:把資料庫當作奢侈 的資源看待,在確保功能的同時,盡可能少地動用資料庫資源。包括如下原則: (1)不訪問或少訪問資料庫; (2)簡化對資料庫的訪問; (3)使訪問最優; (4)對前期及後續的開發、部署、調整提出要求,以協助實現性能目標。 另外,不要直接執行完整的SQL 語法,盡量通過存儲過程來調用SQL Server。客戶與伺服器連接時,建立連接池,讓連接盡量得以重用,以避免時間與資源的損耗。非到不得已, 不要使用游標結構,確實使用時,注意各種游標的特性。

❸ 如何對資料庫性能進行優化

1.資料庫I/O方面硬體性能

最有可能影響性能的是磁碟和網路吞吐量。解決辦法:

  • 擴大虛擬內存,並保證有足夠可以擴充的空間

  • 把資料庫伺服器上的不必要服務關閉掉

  • 把SQL資料庫伺服器的吞吐量調為最大

  • 2.調整資料庫

  • 若對該表的查詢頻率比較高,則建立索引。

  • 分區(如MySQL,按時間分區)

  • 盡量使用固定長度欄位和限制欄位長度(如 varchar(10))優勢:
    降低物理存儲空間
    提高資料庫處理速度
    附帶校驗資料庫是否合法功能

  • 3.使用存儲過程

    應用程序的實現過程中,能夠採用存儲過程實現的對資料庫的操作盡量通過存儲過程來實現。

    因為存儲過程是存放在資料庫伺服器上的一次性被設計、編碼、測試,並被再次使用,需要執行該任務的應用可以簡單地執行存儲過程,並且只返回結果集或者數值。

    這樣不僅可以使程序模塊化,同時提高響應速度,減少網路流量,並且通過輸入參數接受輸入,使得在應用中完成邏輯的一致性實現。

    4.SQL語句方面

    建立查詢條件索引僅僅是提高速度的前提條件,響應速度的提高還依賴於對索引的使用。不良的SQL往往來自於不恰當的索引設計、不充份的連接條件和不可優化的where子句。

  • 優化sql語句,減少比較次數

  • 限制返回條目數(mysql中使用limit)

  • 5.Java方面

  • 盡可能的少創造對象

  • 合理擺正系統設計的位置。大量數據操作,和少量數據操作一定是分開的。

  • 合理利用內存,有的數據要緩存。讓數據流起來,而不是全部讀到內存再處理,而是邊讀取邊處理。

❹ 資料庫性能優化主要包括哪些方面

包括網路、硬體、操作系統、資料庫參數和應用程序。

資料庫的優化通常可以通過對網路、硬體、操作系統、資料庫參數和應用程序的優化來進行。最常見的優化手段就是對硬體的升級。

根據統計,對網路、硬體、操作系統、資料庫參數進行優化所獲得的性能提升,全部加起來只佔資料庫系統性能提升的40%左右,其餘的60%系統性能提升來自對應用程序的優化。許多優化專家認為,對應用程序的優化可以得到80%的系統性能的提升。

(4)資料庫配置調優擴展閱讀

資料庫性能優化法則歸納為5個層次:

1、減少數據訪問(減少磁碟訪問)

2、返回更少數據(減少網路傳輸或磁碟訪問)

3、減少交互次數(減少網路傳輸)

4、減少伺服器CPU開銷(減少CPU及內存開銷)

5、利用更多資源(增加資源)

由於每一層優化法則都是解決其對應硬體的性能問題,所以帶來的性能提升比例也不一樣。傳統資料庫系統設計是也是盡可能對低速設備提供優化方法,因此針對低速設備問題的可優化手段也更多,優化成本也更低。

任何一個SQL的性能優化都應該按這個規則由上到下來診斷問題並提出解決方案,而不應該首先想到的是增加資源解決問題。

❺ 超詳細MySQL資料庫優化

資料庫優化一方面是找出系統的瓶頸,提高MySQL資料庫的整體性能,而另一方面需要合理的結構設計和參數調整,以提高用戶的相應速度,同時還要盡可能的節約系統資源,以便讓系統提供更大的負荷.

1. 優化一覽圖

2. 優化

筆者將優化分為了兩大類,軟優化和硬優化,軟優化一般是操作資料庫即可,而硬優化則是操作伺服器硬體及參數設置.

2.1 軟優化

2.1.1 查詢語句優化

1.首先我們可以用EXPLAIN或DESCRIBE(簡寫:DESC)命令分析一條查詢語句的執行信息.

2.例:

顯示:

其中會顯示索引和查詢數據讀取數據條數等信息.

2.1.2 優化子查詢

在MySQL中,盡量使用JOIN來代替子查詢.因為子查詢需要嵌套查詢,嵌套查詢時會建立一張臨時表,臨時表的建立和刪除都會有較大的系統開銷,而連接查詢不會創建臨時表,因此效率比嵌套子查詢高.

2.1.3 使用索引

索引是提高資料庫查詢速度最重要的方法之一,關於索引可以參高筆者<MySQL資料庫索引>一文,介紹比較詳細,此處記錄使用索引的三大注意事項:

2.1.4 分解表

對於欄位較多的表,如果某些欄位使用頻率較低,此時應當,將其分離出來從而形成新的表,

2.1.5 中間表

對於將大量連接查詢的表可以創建中間表,從而減少在查詢時造成的連接耗時.

2.1.6 增加冗餘欄位

類似於創建中間表,增加冗餘也是為了減少連接查詢.

2.1.7 分析表,,檢查表,優化表

分析表主要是分析表中關鍵字的分布,檢查表主要是檢查表中是否存在錯誤,優化表主要是消除刪除或更新造成的表空間浪費.

1. 分析表: 使用 ANALYZE 關鍵字,如ANALYZE TABLE user;

2. 檢查表: 使用 CHECK關鍵字,如CHECK TABLE user [option]

option 只對MyISAM有效,共五個參數值:

3. 優化表:使用OPTIMIZE關鍵字,如OPTIMIZE [LOCAL|NO_WRITE_TO_BINLOG] TABLE user;

LOCAL|NO_WRITE_TO_BINLOG都是表示不寫入日誌.,優化表只對VARCHAR,BLOB和TEXT有效,通過OPTIMIZE TABLE語句可以消除文件碎片,在執行過程中會加上只讀鎖.

2.2 硬優化

2.2.1 硬體三件套

1.配置多核心和頻率高的cpu,多核心可以執行多個線程.

2.配置大內存,提高內存,即可提高緩存區容量,因此能減少磁碟I/O時間,從而提高響應速度.

3.配置高速磁碟或合理分布磁碟:高速磁碟提高I/O,分布磁碟能提高並行操作的能力.

2.2.2 優化資料庫參數

優化資料庫參數可以提高資源利用率,從而提高MySQL伺服器性能.MySQL服務的配置參數都在my.cnf或my.ini,下面列出性能影響較大的幾個參數.

2.2.3 分庫分表

因為資料庫壓力過大,首先一個問題就是高峰期系統性能可能會降低,因為資料庫負載過高對性能會有影響。另外一個,壓力過大把你的資料庫給搞掛了怎麼辦?所以此時你必須得對系統做分庫分表 + 讀寫分離,也就是把一個庫拆分為多個庫,部署在多個資料庫服務上,這時作為主庫承載寫入請求。然後每個主庫都掛載至少一個從庫,由從庫來承載讀請求。

2.2.4 緩存集群

如果用戶量越來越大,此時你可以不停的加機器,比如說系統層面不停加機器,就可以承載更高的並發請求。然後資料庫層面如果寫入並發越來越高,就擴容加資料庫伺服器,通過分庫分表是可以支持擴容機器的,如果資料庫層面的讀並發越來越高,就擴容加更多的從庫。但是這里有一個很大的問題:資料庫其實本身不是用來承載高並發請求的,所以通常來說,資料庫單機每秒承載的並發就在幾千的數量級,而且資料庫使用的機器都是比較高配置,比較昂貴的機器,成本很高。如果你就是簡單的不停的加機器,其實是不對的。所以在高並發架構里通常都有緩存這個環節,緩存系統的設計就是為了承載高並發而生。所以單機承載的並發量都在每秒幾萬,甚至每秒數十萬,對高並發的承載能力比資料庫系統要高出一到兩個數量級。所以你完全可以根據系統的業務特性,對那種寫少讀多的請求,引入緩存集群。具體來說,就是在寫資料庫的時候同時寫一份數據到緩存集群里,然後用緩存集群來承載大部分的讀請求。這樣的話,通過緩存集群,就可以用更少的機器資源承載更高的並發。

一個完整而復雜的高並發系統架構中,一定會包含:各種復雜的自研基礎架構系統。各種精妙的架構設計.因此一篇小文頂多具有拋磚引玉的效果,但是資料庫優化的思想差不多就這些了.

❻ 資料庫調優是什麼

一、概述

隨著資料庫在各個領域的使用不斷增長,越來越多的應用提出了高性能的要求。資料庫性能調優是知識密集型的學科,需要綜合考慮各種復雜的因素:資料庫緩沖區的大小、索引的創建、語句改寫等等。總之,資料庫性能調優的目的在於使系統運行得更快。

調優需要有廣泛的知識,這使得它既簡單又復雜。

說調優簡單,是因為調優者不必糾纏於復雜的公式和規則。許多學術界和業界的研究者都在嘗試將調優和查詢處理建立在數學基礎之上。

稱調優復雜,是因為如果要完全理解常識所依賴的原理,還需要對應用、資料庫管理系統、操作系統以及硬體有廣泛而深刻的理解。

資料庫調優技術可以在不同的資料庫系統中使用。如果需要調優資料庫系統,最好掌握如下知識:1)查詢處理、並發控制以及資料庫恢復的知識;2)一些調優的基本原則。

這里主要描述索引調優。

二、索引調優

索引是建立在表上的一種數據組織,它能提高訪問表中一條或多條記錄的特定查詢效率。因此,適當的索引調優是很重要的。

對於索引調優存在如下的幾個誤區:

誤區1:索引創建得越多越好?

實際上:創建的索引可能建立後從來未使用。索引的創建也是需要代價的,對於刪除、某些更新、插入操作,對於每個索引都要進行相應的刪除、更新、插入操作。從而導致刪除、某些更新、插入操作的效率變低。

誤區2:對於一個單表的查詢,可以索引1進行過濾再使用索引2進行過濾?

實際上:假設查詢語句如下select * from t1 where c1=1 and c2=2,c1列和c2列上分別建有索引ic1、ic2。先使用ic1(或ic2)進行過濾,產生的結果集是臨時數據,不再具有索引,所以不可使用ic2(或ic1)進行再次過濾。

索引優化的基本原則:

1、將索引和數據存放到不同的文件組

沒有將表數據和索引數據存儲到不同的文件組,而不加區別地將它們存儲到同一文件組。這樣,不但會造成I/O競爭,也為資料庫的維護工作帶來不變。

2、組合索引的使用

假設存在組合索引it1c1c2(c1,c2),查詢語句select * from t1 where c1=1 and c2=2能夠使用該索引。查詢語句select * from t1 where c1=1也能夠使用該索引。但是,查詢語句select * from t1 where c2=2不能夠使用該索引,因為沒有組合索引的引導列,即,要想使用c2列進行查找,必需出現c1等於某值。

根據where條件的不同,歸納如下:

1) c1=1 and c2=2:使用索引it1c1c2進行等值查找。

2) c1=1 and c2>2:使用索引it1c1c2進行范圍查找,可以有兩種方法。

方法1,使用通過索引鍵(1,2)在B樹中命中一條記錄,然後向後掃描找出 第一條符合條件的記錄,從此記錄往後的每一條記錄都是符合條件的。這種方法的弊端在於:如果c1=1 and c2=2對應的記錄數很多,會產生很多無效的掃描。

方法2,如果c2對應的int型數據,可以使用索引鍵(1,3)在B樹中命中一條記錄,從此記錄往後的每一條記錄都是符合條件的。

本文中的例子均採用方法1。

3)c1>1 and c2=2:因為索引的第一個列不是等於號的,索引即使後面出現了c2=2,也不能將c2=2應用於索引查找。這里,通過索引鍵(1,- ∞)在B樹中命中一條記錄,向後掃描找出第一條符合c1>1的記錄,此後的每一條記錄判斷是否符合c2=2,如果符合則輸出,否則過濾掉。這里我們稱c2=2沒有參與到索引運算中去。這種情況在實際應用中經常出現。

4)c1>1:通過索引鍵(1,- ∞) 在B樹中命中一條記錄,以此向後掃描找出第一條符合c1>1的記錄,此後的每條記錄都是符合條件的。

3、唯一索引與非唯一索引的差異

假設索引int1c1(c1)是唯一索引,對於查詢語句select c1 from t1 where c1=1,達夢資料庫使用索引鍵(1)命中B樹中一條記錄,命中之後直接返回該記錄(因為是唯一索引,所以最多隻能有一條c1=1的記錄)。

假設索引it1c2(c2)是非唯一索引,對於查詢語句select c2 from t2 where c2=2,達夢資料庫使用索引鍵(2)命中B樹中一條記錄,返回該記錄,並繼續向後掃描,如果該記錄是滿足c=2,返回該記錄,繼續掃描,直到遇到第一條不符合條件c2=2的記錄。

於是,我們可以得知,對於不存在重復值的列,創建唯一索引優於創建非唯一索引。

4、非聚集索引的作用

每張表只可能一個聚集索引,聚集索引用來組織真實數據。語句「create table employee (id int cluster primary key,name varchar(20),addr varchar(20))」。表employee的數據用id來組織。如果要查找id=1000的員工記錄,只要用索引鍵(1000)命中該聚集索引。但是,對於要查找name=』張三』的員工記錄就不能使用該索引了,需要進行全表掃描,對於每一條記錄判斷是否滿足name=』張三』,這樣會導致查詢效率非常低。

要使用聚集索引,必需提供id,我們只能提供name,於是需要引入一個輔助結構實現name到id的轉換,這就是非聚集索引的作用。該非聚集索引的鍵是name,值是id。於是語句「select * from employee where name=』張三』」的執行流程是:通過鍵(』張三』)命中非聚集索引,得到對應的id值3(假設』張三』對應的id為3),然後用鍵(3)命中聚集索引,得到相應的記錄。

5、是不是使用非聚集索引的查詢都需要進行聚集的查詢?

不是的,雖然在上一點中查詢轉換為聚集索引的查找,有時候可以只需要使用非聚集索引。

創建表並創建相應的索引:create table t1(c1 int,c2 int,c3 int);create index it1c2c3 on t1(c2,c3)。查詢語句為:select c3 from t1 where c2=1。

因為索引it1c2c3(c2,c3)覆蓋查詢語句中的列(c2,c3)。所以,該查詢語句的執行流程為:通過索引鍵(1,- ∞)命中索引it1c2c3,對於該記錄直接返回c3對應的值,繼續向後掃描,如果索引記錄中c1還是等於1,那麼輸出c3,以此類推,直到出現第一條c1不等於1的索引記錄,結束查詢。

6、創建索引的規則

創建索引首先要考慮的是列的可選擇性。比較一下列中唯一鍵的數量和表中記錄的行數,就可以判斷該列的可選擇性。如果該列的「唯一鍵的數量/表中記錄行數」的比值越接近於1,則該列的可選擇行越高。在可選擇性高的列上進行查詢,返回的數據就較少,比較適合索引查詢。相反,比如性別列上只有兩個值,可選擇行就很小,不適合索引查詢。

❼ 資料庫如何優化

body{
line-height:200%;
}
如何優化MySQL資料庫
當MySQL資料庫邂逅優化,它有好幾個意思,今天我們所指的是性能優化。
我們究竟該如何對MySQL資料庫進行優化呢?下面我就從MySQL對硬體的選擇、Mysql的安裝、my.cnf的優化、MySQL如何進行架構設計及數據切分等方面來說明這個問題。
1.伺服器物理硬體的優化
1)磁碟(I/O),MySQL每一秒鍾都在進行大量、復雜的查詢操作,對磁碟的讀寫量可想而知,所以推薦使用RAID1+0磁碟陣列,如果資金允許,可以選擇固態硬碟做RAID1+0;
2)cpu對Mysql的影響也是不容忽視的,建議選擇運算能力強悍的CPU。
2.MySQL應該採用編譯安裝的方式
MySQL資料庫的線上環境安裝,我建議採取編譯安裝,這樣性能會較大的提升。
3.MySQL配置文件的優化
1)skip
-name
-resolve,禁止MySQL對外部連接進行DNS解析,使用這一選項可以消除MySQL進行DNS解析的時間;
2)back_log
=
384,back_log指出在MySQL暫時停止響應新請求之前,短時間內的多少個請求可以被存在堆棧中,對於Linux系統而言,推薦設置小於512的整數。
3)如果key_reads太大,則應該把my.cnf中key_buffer_size變大,保持key_reads/key_read_requests至少在1/100以上,越小越好。
4.MySQL上線後根據status狀態進行適當優化
1)打開慢查詢日誌可能會對系統性能有一點點影響,如果你的MySQL是主-從結構,可以考慮打開其中一台從伺服器的慢查詢日誌,這樣既可以監控慢查詢,對系統性能影響也會很小。
2)MySQL伺服器過去的最大連接數是245,沒有達到伺服器連接數的上限256,應該不會出現1040錯誤。比較理想的設置是:Max_used_connections/max_connections
*
100%
=85%
5.MySQL資料庫的可擴展架構方案
1)MySQL
cluster,其特點為可用性非常高,性能非常好,但它的維護非常復雜,存在部分Bug;
2)DRBD磁碟網路鏡像方案,其特點為軟體功能強大,數據可在底層塊設備級別跨物理主機鏡像,且可根據性能和可靠性要求配置不同級別的同步。

❽ 資料庫該如何優化

資料庫優化可以從以下幾個方面進行:
1.結構層: web伺服器採用負載均衡伺服器,mysql伺服器採用主從復制,讀寫分離
2.儲存層: 採用合適的存儲引擎,採用三範式
3.設計層: 採用分區分表,索引,表的欄位採用合適的欄位屬性,適當的採用逆範式,開啟mysql緩存
4.sql語句層:結果一樣的情況下,採用效率高,速度快節省資源的sql語句執行

❾ 關於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