標籤:
原始碼檔案
1,什麼是效能問題?
現有資源沒有達到最大輸送量的前提下,系統不能滿足合理的預期表現,則可以定義為有效能問題。效能指標包括:回應時間,輸送量,可擴充性。
2,初探最佳化
2.1最佳化論
一般遇到2種效能問題:
1),某個功能很慢,或者突然變慢,比如某個預存程序、查詢等。
2),整個系統很慢。
第一種情況下,對象比較明確,所以處理起來相對輕鬆。大部分情況下,只需要研究執行計畫就可以解決絕大部分問題。通過改變查詢、調整表結構(索引等)。就可以起到明顯的效果。
第二種情況下,對象不明確,首先需要定位瓶頸。可以通過效能計數器,sql profiler/sql trace, ExtendedEvents(sql server 2008) ,進行匯總分析。然後定位瓶頸。
2.2 定義問題
2.2.2通過對效能資料進行分類。處理完成後,進行深度分析,總結匯總。
1), 分析資料庫執行個體層級的等待。使用效能計數器、sql profiler進行監控。
6), 最佳化索引/查詢: a,改進代碼:用cte等代替遊標查詢。
關鍵字:
SARG : SARG(Searchable Arguments操作,因為它通常是指一個特定的匹配,一個值得範圍內的匹配或者兩個以上條件的AND串連。
1,萬用字元%在字串的開通使得索引無法使用。 name like ‘%張’,就不屬於SARG。
2,or會引起全表掃描。 Name=’張三’ or 價格>5000 則不符合SARG。
3,IN 相當與OR
4,用union在通常情況下比用or的效率要高的多。
5, 一定要避免select無用欄位。
6,通過分頁等來
SARG:http://baike.baidu.com/link?url=7ZXayDrpukcblTpbT45lMprJYMf5LS89cDodSkxa08xbt3sppuIvUf_0CAqEvucbzUPjQKqTXPMSeEkG7kGf3q
SQL Server效能最佳化