日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

解讀SQL Server數(shù)據(jù)庫(kù)開發(fā)要注意的21點(diǎn)(2)_Mssql數(shù)據(jù)庫(kù)教程

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

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


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

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

共2頁(yè)上一頁(yè)12下一頁(yè)
來源:模板無憂//所屬分類:Mssql數(shù)據(jù)庫(kù)教程/更新時(shí)間:2010-02-26
相關(guān)Mssql數(shù)據(jù)庫(kù)教程