解讀SQL Server數據庫開發要注意的21點(2)_Mssql數據庫教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:如何提高SQL語句性能
      在本文中,將講述四項技術,這些技術可用于提高基于SQLServer的性能或改善其可伸縮性,將仔細說明LEFTJOIN、CROSSJOIN的使用以及IDENTITY值的檢索。請記住,根本沒有神奇的解決方案。調整您的數據庫及其查詢需要占用時間、進行分析,還需要大量的測試。這些技


      13、不要打開大的數據集 
      一個經常被提出的問題是:我怎樣才能迅速的將100000條記錄添加到ComboBox中?這是不對的,你不能也不需要這樣做。很簡單,你的用戶要瀏覽100000條記錄才能找到需要的記錄,他一定會詛咒你的。在這里,你需要的是一個更好的UI,你需要為你的用戶顯示不超過100或200條記錄。 
      14、不要使用服務器端游標 
      與服務器端游標比起來,客戶端游標可以減少服務器和網絡的系統開銷,并且還減少鎖定時間。 
      15、使用參數查詢 
      有時,我在CSDN技術論壇看到類似這樣的問題:“SELECT * FROM a WHERE a.id=’A’B,因為單引號查詢發生異常,我該怎么辦?”,而普遍的回答是:用兩個單引號代替單引號。這是錯誤的。這樣治標不治本,因為你還會在其他一些字符上遇到這樣的問題,更何況這樣會導致嚴重的bug,除此以外,這樣做還會使SQL Server的緩沖系統無法發揮應有的作用。使用參數查詢, 釜底抽薪,這些問題統統不存在了。 
      16、在程序編碼時使用大數據量的數據庫 
      程序員在開發中使用的測試數據庫一般數據量都不大,可經常的是最終用戶的數據量都很大。我們通常的做法是不對的,原因很簡單:現在硬盤不是很貴,可為什么性能問題卻要等到已經無可挽回的時候才被注意呢? 
      17、不要使用INSERT導入大批的數據 
      請不要這樣做,除非那是必須的。使用UTS或者BCP,這樣你可以一舉而兼得靈活性和速度。 
      18、注意超時問題 
      查詢數據庫時,一般數據庫的缺省都比較小,比如15秒或者30秒。而有些查詢運行時間要比這長,特別是當數據庫的數據量不斷變大時。 
      19、不要忽略同時修改同一記錄的問題 
      有時候,兩個用戶會同時修改同一記錄,這樣,后一個修改者修改了前一個修改者的操作,某些更新就會丟失。處理這種情況不是很難:創建一個timestamp字段,在寫入前檢查它,如果允許,就合并修改,如果存在沖突,提示用戶。 
      20、在細節表中插入紀錄時,不要在主表執行SELECT MAX(ID) 
      這是一個普遍的錯誤,當兩個用戶在同一時間插入數據時,這會導致錯誤。你可以使用SCOPE_IDENTITY,IDENT_CURRENT和IDENTITY。如果可能,不要使用IDENTITY,因為在有觸發器的情況下,它會引起一些問題(詳見這里的討論)。 
      21、避免將列設為NULLable 
      如果可能的話,你應該避免將列設為NULLable。系統會為NULLable列的每一行分配一個額外的字節,查詢時會帶來更多的系統開銷。另外,將列設為NULLable使編碼變得復雜,因為每一次訪問這些列時都必須先進行檢查。 
      我并不是說NULLS是麻煩的根源,盡管有些人這樣認為。我認為如果你的業務規則中允許“空數據”,那么,將列設為NULLable有時會發揮很好的作用,但是,如果在類似下面的情況中使用NULLable,那簡直就是自討苦吃。 
      CustomerName1 
      CustomerAddress1 
      CustomerEmail1 
      CustomerName2 
      CustomerAddress2 
      CustomerEmail3 
      CustomerName1 
      CustomerAddress2 
      CustomerEmail3 
      如果出現這種情況,你需要規范化你的表了。 

      分享:揭秘加快Sql server時間查詢速度的辦法
      數據量大的情況下 Sql server時間比較查詢的速度是比較慢的,如果 在access中進行時間的比較,sql語句很簡單,select*fromtablewherethetime#\now()\#這樣即可。 但在mssql就不能這樣,要用datediff語句和getdate()函數進行比較。 如selectcount(*)fromtab

      共2頁上一頁12下一頁
      來源:模板無憂//所屬分類:Mssql數據庫教程/更新時間:2010-02-26
      相關Mssql數據庫教程