
無論解決甚麼問題事先預防總是比事後彌補來的好,所以SQL效能也是,在開始設計資料庫時設計人員就應該對於資料型態非常了解,應該要分析出哪個資料表效能會最差,哪個欄位搜尋會非常頻繁,這樣才能預先做出處裡,由於目前討論的議題是效能調教,所以不會對於開資料庫與設計資料表做太多著墨,本篇也不會討論到正規畫相關
1.預存程序
其實在於微軟效能調教相關書籍都有建議,盡量不要在程式端下T-SQL指令,第一點當然是權限的問題,工程師應該沒有權限可以看到客戶資料,第二點方便SQL指令管理,所有SQL指定都在 預存程序 內,所以要調整SQL指令只要在預存程序就可修改,第三點因為每次下T-SQL指令SQL Server會把指定給最佳化,但是假如把指令都寫成預存程序,其實SQL Server只會最佳化一次,大部分的時候會取暫存區的最佳化結果直接使用,所以效能會比較佳,但是有幾點要注意,假如第一次最佳化是比較差的結果,之後都會是使用較差大結果,但是這問題通常只要設對索引,最佳化結果都是最好的,還有不要把所以SQL指令都寫成一個大預存程序利用參數去判斷要使用哪個SQL,因為預存程序只要大於8K就不會暫存最佳化了,而且最佳化解果也不會好
2.索引