利用優(yōu)化顧問實現(xiàn)SQL Server引擎的優(yōu)化
數(shù)據(jù)庫優(yōu)化除了依靠DBA的個人經(jīng)驗以外,還需要一些小工具的幫忙。最近數(shù)據(jù)庫服務(wù)器有點慢,去看看哪方面的壓力比較大!
其實并不是這個Lucky28 數(shù)據(jù)庫影響整個服務(wù)器。但多少會有點影響,每個小影響積累起來就影響比較大!
這里簡單的講一下:如何使用數(shù)據(jù)庫引擎優(yōu)化顧問優(yōu)化數(shù)據(jù)庫
簡單的優(yōu)化一下數(shù)據(jù)庫。
一、啟動 Microsoft SQL Server management studio(就是SQL的管理工具)
二、工具->SQL Server profiler
三、sql server profiler->文件->新建跟蹤 ->運行
時間長一點,點停止 然后保存這個跟蹤
sql server profiler->文件->保存->取個名字
詳細查看:
如何創(chuàng)建跟蹤 (SQL Server Profiler)
http://technet.microsoft.com/zh-cn/library/ms175047.aspx
四、SQL Server profiler->工具-數(shù)據(jù)庫引擎優(yōu)化顧問
工作負荷 選擇剛才保存的文件。
在選擇要優(yōu)化的數(shù)據(jù)庫和表 里面選擇一個(不要全選,會卡死的)
選項都是中文的,自己配置一下。
最后點下開始分析。等著,我這個等了十幾分鐘。
完成后會有建議
看一下建議
tbLucky28Account 這張表查詢其實已經(jīng)很快了,但是他使用頻率很高,跟據(jù)它的建議優(yōu)化一下。確實提高了不少。
一個是統(tǒng)計,一個是索引
以下是網(wǎng)上查過來的:
1.STATISTICS是一個表中某幾個列的統(tǒng)計信息,如一個表是全校學(xué)生某次考試的分數(shù),score列的類型是int,取值范圍是0到100的整數(shù), 那么statistc就是每個分數(shù)分別有多少人。在一個特定的查詢中,使用索引可能加快速度,也可能減慢速度,所以SQL server要事先對使用索引的效果做一個預(yù)測,預(yù)測的依據(jù)就是STATISTICS。
2.默認情況下,表或索引更改了,統(tǒng)計會相應(yīng)地自動更新, 以保持統(tǒng)計是最新的。但是可以在數(shù)據(jù)庫選項中關(guān)閉這個自動更新的功能,提高數(shù)據(jù)表的更新速度。但需要定期手動更新統(tǒng)計。因為過期的統(tǒng)計信息會對是否使用索 引的判斷帶來誤判。沒發(fā)現(xiàn)SQL2000和SQL2005的統(tǒng)計有什么區(qū)別。
3.index要依賴正確的STATISTICS才能發(fā)揮作用。而你的SQL2005優(yōu)化工具對缺乏STATISTIC的列自動產(chǎn)生了創(chuàng)建語句。
索引有很多好處和壞外,以下是索引的一點點資料,
http://www.cnblogs.com/Mattcoder/archive/2007/02/08/644824.html
五、查看報告
有很多報告可以查看。
這里可以看到 tbLucky28Account 這個賬戶表的訪問頻率,前面的建議優(yōu)化是非常正確的。
這里有索引的報告。這里我圈出來的兩個索引特別大。
最大那個 PK_tbUserWagerTaskHistory 這個是歷史數(shù)據(jù),備查的,平時不用沒什么影響。
但是上面那個PK_tbGamePriceAccountLogs_XX這個有32多M就要跟據(jù)自己的實際情況進行優(yōu)化。
原文標題:如何使用數(shù)據(jù)庫引擎優(yōu)化顧問優(yōu)化數(shù)據(jù)庫
鏈接:http://www.cnblogs.com/hsj2010/archive/2010/07/15/1777823.html
【編輯推薦】