2011-02-14 182 views
1

我使用SQL Server 2008和我需要優化我的queries.For爲此我使用的數據庫引擎優化顧問。SQL查詢優化

我的問題是我可以檢查一次只有一個SQL查詢的性能還是多於一個新的會話?

+0

你還應該用SQL Profiler - http://msdn.microsoft弄髒你的手。com/en-us/library/ms181091.aspx – StuartLC 2011-02-14 10:31:15

+0

但我所要求的是......我可以檢查一次只有一個SQL查詢的性能,或者多於一個新的會話嗎? – 2011-02-14 10:36:36

回答

2

要分析一個查詢同時右鍵單擊它在SSMS腳本窗口,選擇選項「分析查詢在DTA」對於這個工作負載選擇選項「保留所有現有PDS」,以避免指標drop建議負荷不通過檢查中的查詢中使用。

要做多個人首先捕獲具有代表性工作負載樣本的跟蹤文件,然後您可以使用DTA分析該文件。

0

當寫SQL查詢有必須遵循簡單的步驟: -

1-Take的列名在SELECT查詢,而不是*

2,避免子查詢

3-避免使用操作者IN操作

4-使用具有如在組的過濾器通過

5-Don不將圖像保存到數據庫中而不是保存圖像 數據庫中的路徑例如:在數據庫中保存或檢索圖像時,將圖像保存在數據庫中需要佔用大量空間,並且每個時間都需要序列化。

6-每個表都應有一個主鍵

7-每個表都應有一個最小的一個簇索引

8每個表應具有的非聚集索引非聚集適量索引應在基於正在運行的查詢的表的列上創建

9-應遵循以下優先順序,當任何索引爲 時,應創建a)WHERE子句,b)JOIN子句,c)ORDER BY子句,d) SELECT子句

10不要使用次數或替換原始源表視圖

11-觸發器不應該被儘可能使用,包括 觸發的在存儲過程中的邏輯

12中刪除任何即席查詢和調用存儲過程代替

13檢查是否有ATLEAST 30%HHD是空的這將是提高性能有點

14如果可能的話移動UDF的邏輯到SP以及

15取下表

16如果在查詢中使用光標,看看是否有任何其他的方法來避免使用這種 的(或者通過SELECT ... INTO或INSERT ... INTO任何不必要的連接,等)