一、建立索引
在廣陽等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、成都做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需搭建網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),網(wǎng)絡(luò)營銷推廣,成都外貿(mào)網(wǎng)站制作,廣陽網(wǎng)站建設(shè)費(fèi)用合理。
二、建立存儲(chǔ)過程
三、只查詢您所需要的數(shù)據(jù),不要把所有數(shù)據(jù)都查詢出來,防止數(shù)據(jù)冗余。
四、對(duì)于大量及海量數(shù)據(jù)一般還要建立分區(qū)
檢測(cè)SqlServer數(shù)據(jù)庫是否能連接的小技巧
連接數(shù)據(jù)庫,try catch 判斷,
拋出異常就連接不上了,再判斷連接的狀態(tài)。
盡量避免使用游標(biāo),因?yàn)橛螛?biāo)的效率較差,如果游標(biāo)操作的數(shù)據(jù)超過1萬行,那么就應(yīng)該考慮改寫。
使用基于游標(biāo)的方法之前,應(yīng)先尋找基于集的解決方案來解決問題,基于集的方法通常更有效。
最好的改進(jìn)光標(biāo)性能的技術(shù)就是:能避免時(shí)就避免使用游標(biāo)
若有時(shí)無法避免使用游標(biāo),則可以用如下技巧來優(yōu)化游標(biāo)的性能。
(1). 除非必要否則不要使用static/insensitive游標(biāo)。打開static游標(biāo)會(huì)造成所有的行都被拷貝到臨時(shí)表。這正是為什么它對(duì)變化不敏感的原因——它實(shí)際上是指向臨時(shí)數(shù)據(jù)庫表中的一個(gè)備份。很自然,結(jié)果集越大,聲明其上的static游標(biāo)就會(huì)引起越多的臨時(shí)數(shù)據(jù)庫的資源爭(zhēng)奪問題。
(2). 除非必要否則不要使用keyset游標(biāo)。和static游標(biāo)一樣,打開keyset游標(biāo)會(huì)創(chuàng)建臨時(shí)表。雖然這個(gè)表只包括基本表的一個(gè)關(guān)鍵字列(除非不存在唯一關(guān)鍵字),但是當(dāng)處理大結(jié)果集時(shí)還是會(huì)相當(dāng)大的。
(3). 當(dāng)處理單向的只讀結(jié)果集時(shí),使用fast_forward代替forward_only。使用fast_forward定義一個(gè)forward_only,則read_only游標(biāo)具有一定的內(nèi)部性能優(yōu)化。
(4). 使用read_only關(guān)鍵字定義只讀游標(biāo)。這樣可以防止意外的修改,并且讓服務(wù)器了解游標(biāo)移動(dòng)時(shí)不會(huì)修改行。
(5). 小心事務(wù)處理中通過游標(biāo)進(jìn)行的大量行修改。根據(jù)事務(wù)隔離級(jí)別,這些行在事務(wù)完成或回滾前會(huì)保持鎖定,這可能造成服務(wù)器上的資源爭(zhēng)奪。
(6). 小心動(dòng)態(tài)光標(biāo)的修改,尤其是建在非唯一聚集索引鍵的表上的游標(biāo),因?yàn)樗麄儠?huì)造成“Halloween”問題——對(duì)同一行或同一行的重復(fù)的錯(cuò)誤的修改。因?yàn)镾QL Server在內(nèi)部會(huì)把某行的關(guān)鍵字修改成一個(gè)已經(jīng)存在的值,并強(qiáng)迫服務(wù)器追加下標(biāo),使它以后可以再結(jié)果集中移動(dòng)。當(dāng)從結(jié)果集的剩余項(xiàng)中存取時(shí),又會(huì)遇到那一行,然后程序會(huì)重復(fù),結(jié)果造成死循環(huán)。
(7). 對(duì)于大結(jié)果集要考慮使用異步游標(biāo),盡可能地把控制權(quán)交給調(diào)用者。當(dāng)返回相當(dāng)大的結(jié)果集到可移動(dòng)的表格時(shí),異步游標(biāo)特別有用,因?yàn)樗鼈冊(cè)试S應(yīng)用程序幾乎馬上就可以顯示行
SQL Server數(shù)據(jù)庫查詢速度慢的原因有很多,常見的有以下幾種:
1、沒有索引或者沒有用到索引(這是查詢慢最常見的問題,是數(shù)據(jù)庫設(shè)計(jì)的缺陷)
2、I/O吞吐量小,形成了瓶頸效應(yīng)。
3、沒有創(chuàng)建計(jì)算列導(dǎo)致查詢不優(yōu)化。
4、內(nèi)存不足
5、網(wǎng)絡(luò)速度慢
6、查詢出的數(shù)據(jù)量過大(可以采用多次查詢,其他的方法降低數(shù)據(jù)量)
7、鎖或者死鎖(這也是查詢慢最常見的問題,是程序設(shè)計(jì)的缺陷)
8、sp_lock,sp_who,活動(dòng)的用戶查看,原因是讀寫競(jìng)爭(zhēng)資源。
9、返回了不必要的行和列
10、查詢語句不好,沒有優(yōu)化
●可以通過以下方法來優(yōu)化查詢 :
1、把數(shù)據(jù)、日志、索引放到不同的I/O設(shè)備上,增加讀取速度,以前可以將Tempdb應(yīng)放在RAID0上,SQL2000不在支持。數(shù)據(jù)量(尺寸)越大,提高I/O越重要。
2、縱向、橫向分割表,減少表的尺寸(sp_spaceuse)
3、升級(jí)硬件
4、根據(jù)查詢條件,建立索引,優(yōu)化索引、優(yōu)化訪問方式,限制結(jié)果集的數(shù)據(jù)量。注意填充因子要適當(dāng)(最好是使用默認(rèn)值0)。索引應(yīng)該盡量小,使用字節(jié)數(shù)小的列建索引好(參照索引的創(chuàng)建),不要對(duì)有限的幾個(gè)值的字段建單一索引如性別字段。
網(wǎng)站欄目:關(guān)于tiobeVB.net的信息
路徑分享:http://sd-ha.com/article2/hcosoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、網(wǎng)頁設(shè)計(jì)公司、靜態(tài)網(wǎng)站、企業(yè)建站、微信公眾號(hào)、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)