源代碼文件sql
1,什麼是性能問題?數據庫
現有資源沒有達到最大吞吐量的前提下,系統不能知足合理的預期表現,則能夠定義爲有性能問題。性能指標包括:響應時間,吞吐量,可擴展性。性能
2,初探優化優化
2.1優化論url
通常遇到2種性能問題:server
1),某個功能很慢,或者忽然變慢,好比某個存儲過程、查詢等。htm
2),整個系統很慢。對象
第一種狀況下,對象比較明確,因此處理起來相對輕鬆。大部分狀況下,只須要研究執行計劃就能夠解決絕大部分問題。經過改變查詢、調整表結構(索引等)。就能夠起到明顯的效果。blog
第二種狀況下,對象不明確,首先須要定位瓶頸。能夠經過性能計數器,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