解讀SQL Server數據庫開發要注意的21點(2)_Mssql數據庫教程
教程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
相關Mssql數據庫教程:
- sql 語句練習與答案
- 深入C++ string.find()函數的用法總結
- SQL Server中刪除重復數據的幾個方法
- sql刪除重復數據的詳細方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數據庫,提示 無法為該請求檢索數據 錯誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲過程參數的用法實例詳解
- 相關鏈接:
- 教程說明:
Mssql數據庫教程-解讀SQL Server數據庫開發要注意的21點(2)。