資料庫優化方法 一

2021-09-05 21:42:29 字數 2583 閱讀 6360

我經常碰到有人會問一些資料庫優化方面的問題,我覺得這是一最基本技能要求,特別是使用sql server 2005,對於sql server的優化,使用的專職dba或兼職dba們工作更輕鬆,效率更高了,但是還是有很多新人可能不大了解,我在這兒寫一下最基本的一些介紹。

一、首先介紹一下sql server 2005中優化資料時使用到的兩個工具    

1.第乙個工具sql server profile,這個工具在sql server 2000中也有,公司在使用sql 2000資料庫時,我經常使用這個工具,來捕捉那些有效能問題的sql語句。

sql server profiler 是用於伺服器捕獲sql server 2005事件的工具。事件可以儲存在乙個跟蹤檔案中,可在以後對該檔案進行分析,也可以在試圖診斷某個問題時,用它來重播某一系列的步驟。

sql server profiler 可用於以下活動:

1)逐步分析有問題的查詢以找到出現問題的原因。

2)查詢並診斷執行慢的查詢

3)捕獲導致某個問題的一系列t-sql語句,然後用所儲存的跟蹤在某台測試伺服器上覆制此問題,接著在測試伺服器上診斷問題。

4)監視sql server的效能以優化工作負荷

5)使效能計數器與診斷問題關聯

使用 sql server profiler時,您可以按「持續時間」、cpu、「讀」或「寫」資料列將跟蹤或跟蹤檔案分組來排除資料故障。例如,您可以對效能差的查詢或邏輯讀取運算元特別高的查詢進行資料故障排除。

通過將跟蹤儲存至表和使用 transact-sql 查詢事件資料,可以找到其他資訊。

工具介面如圖:

2. 第二個工具是sql server 2005中新增加的工具——資料庫引擎優化顧問

資料庫引擎優化顧問用於分析在乙個或多個資料庫中執行的工作負荷的效能效果。分析資料庫的工作負荷效果後,資料庫引擎優化顧問會提供在 microsoft sql server 資料庫中新增、刪除或修改物理設計結構的建議。這些物理效能結構包括聚集索引、非聚集索引、索引檢視和分割槽。實現這些結構之後,資料庫引擎優化顧問使查詢處理器能夠用最短的時間執行工作負荷任務。

資料庫管理員可以使用資料庫引擎優化顧問進行探索性分析。探索性分析需要綜合使用手動優化和工具輔助優化。若要使用資料庫引擎優化顧問進行探索性分析,需使用使用者指定的配置功能。使用使用者指定的配置功能可以指定優化現有和假設的物理設計結構(如索引、索引檢視和分割槽)的配置。指定假設結構的好處就是,可以在不用首先實現這些結構的情況下評估它們對資料庫的影響。

探索性分析的兩種模式

可以使用資料庫引擎優化顧問以下列兩種模式之一執行探索性分析:

1) 評估模式

在評估模式中,資料庫引擎優化顧問將相同工作負荷下當前配置的成本 (c) 和使用者指定的配置的成本 (u) 進行比較。因為 c 由資料庫中當前存在的物理設計結構組成,所以 c 始終是實際配置。相比較而言,u 是由實際和假設的物理設計結構組成的配置。如果資料庫引擎優化顧問報告 u 的成本低於 c 的成本,則 u 的物理設計效能可能優於 c。

例如,對於下列情況,評估模式是有用的:

資料庫管理員要確定向表中新增非聚集索引對效能的影響。

資料庫管理員剛剛完成了使用資料庫引擎優化顧問優化資料庫並接受了建議 (r)。檢視 r 後,管理員可能會通過修改 r 對其進行微調。

例如,資料庫管理員想要新增兩個非聚集索引並刪除 r 中的乙個非聚集索引。修改 r 後,該管理員將修改的 r 作為輸入傳送給資料庫引擎優化顧問,並再次優化以衡量修改後的 r 對效能的影響。

2) 優化模式

在優化模式中,資料庫管理員已經知道應該對資料庫物理設計的一部分進行修改,但是希望資料庫引擎優化顧問能夠為其餘配置提供最佳物理設計結構方面的建議。

例如,優化模式在以下情況下非常有用:

資料庫管理員了解由於事實資料表過大,因此必須對其進行分割槽。管理員必須選擇是按月還是按季度分割槽。可以使用其中任意一種方式對錶進行分割槽,但管理員希望選擇在給定的工作負荷下能提供最佳效能的分割槽方法。若要確定最佳分割槽方法,管理員可以使用資料庫引擎優化顧問兩次化工作負荷。

首先,管理員通過使用者指定的配置和按月假設分割槽的表來優化工作負荷。

然後,使用按季度假設分割槽的表來優化工作負荷。

使用兩種假設配置優化工作負荷後,管理員可以通過比較提高的百分比來確定能提供最佳效能的分割槽方法。

例如:orders 表必須包含 ship_date 列的聚集索引。資料庫管理員想要確定 orders 表的一組最佳非聚集索引。通過指定使用者指定的配置(該配置包含 orders 表中 ship_date 列的聚集索引),資料庫管理員可以部分修改物理資料庫設計。然後可以在優化模式下使用資料庫引擎優化顧問確定使用者指定的配置對效能的影響。

資料庫引擎優化顧問未優化事件的最常見原因包括:

1)工作負荷引用了使用者未選擇優化的表。

2)工作負荷引用的表過小,例如包含的資料頁少於 10 頁的表。

3)資料庫引擎優化顧問無法在指定時間範圍內優化工作負荷。

說明:工作負荷是資料庫引擎優化顧問的分析物件,它由要優化的乙個或多個資料庫執行的一組t-sql語句構成。

資料庫優化方法 一

我經常碰到有人會問一些資料庫優化方面的問題,我覺得這是一最基本技能要求,特別是使用sql server 2005,對於sql server的優化,使用的專職dba或兼職dba們工作更輕鬆,效率更高了,但是還是有很多新人可能不大了解,我在這兒寫一下最基本的一些介紹。一 首先介紹一下sql server...

索引 資料庫優化方法(一)

資料庫 和 資料庫索引 這兩個東西是在伺服器端開發領域應用最為廣泛的兩個概念,熟練使用資料庫和資料庫索引是開發人員在行業內生存的必備技能 使用索引很簡單,只要能寫建立表的語句,就肯定能寫建立索引的語句,要知道這個世界上是不存在不會建立表的伺服器端程式設計師的。然而,會使用索引是一回事,而深入理解索引...

資料庫優化(一)

a 表的設計合理化 符合3nf bc b 新增適當索引 index 四種 普通索引 主鍵索引 唯一索引unique 全文索引 c 分表技術 水平分割 垂直分割 d 讀寫 寫 update delete add 分離 e 儲存過程 模組化程式設計,可以提高速度 f 對mysql配置優化 配置最大併發數...