熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL語言 >> 正文

存儲過程編寫經驗和優化措施[2]

2013-11-13 12:36:38  來源: SQL語言 
    b) 索引的使用規范

   i 索引的創建要與應用結合考慮建議大的OLTP表不要超過個索引

   ii 盡可能的使用索引字段作為查詢條件尤其是聚簇索引必要時可以通過index index_name來強制指定索引

   iii避免對大表查詢時進行table scan必要時考慮新建索引

   iv 在使用索引字段作為條件時如果該索引是聯合索引那麼必須使用到該索引中的第一個字段作為條件時才能保證系統使用該索引否則該索引將不會被使用
   
   v 要注意索引的維護周期性重建索引重新編譯存儲過程

  c)tempdb的使用規范

   i 盡量避免使用distinctorder bygroup byhavingjoincumpute因為這些語句會加重tempdb的負擔

   ii 避免頻繁創建和刪除臨時表減少系統表資源的消耗

   iii在新建臨時表時如果一次性插入數據量很大那麼可以使用select into代替create table避免log提高速度如果數據量不大為了緩和系統表的資源建議先create table然後insert

   iv 如果臨時表的數據量較大需要建立索引那麼應該將創建臨時表和建立索引的過程放在單獨一個子存儲過程中這樣才能保證系統能夠很好的使用到該臨時表的索引

   v 如果使用到了臨時表在存儲過程的最後務必將所有的臨時表顯式刪除先truncate table然後drop table這樣可以避免系統表的較長時間鎖定

   vi 慎用大的臨時表與其他大表的連接查詢和修改減低系統表負擔因為這種操作會在一條語句中多次使用tempdb的系統表

  d)合理的算法使用

  根據上面已提到的SQL優化技術和ASE Tuning手冊中的SQL優化內容結合實際應用采用多種算法進行比較以獲得消耗資源最少效率最高的方法具體可用ASE調優命令set statistics io on set statistics time on set showplan on 等

[]  []  


From:http://tw.wingwit.com/Article/program/SQL/201311/16238.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.