国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

優(yōu)化Select 語(yǔ)句的原則

2024-07-21 02:49:16
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
優(yōu)化Select 語(yǔ)句的原則 Posted on 2014-09-14 11:42 衡斅 閱讀(...) 評(píng)論(...) 編輯 收藏

優(yōu)化Select 語(yǔ)句的原則

  -摘抄《SQL Server 2005 性能監(jiān)測(cè)與優(yōu)化

Select 語(yǔ)句是數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中最常用的語(yǔ)句之一,Select 語(yǔ)句設(shè)計(jì)的好壞直接影響到應(yīng)用程序的工作性能。

在設(shè)計(jì)Select語(yǔ)句時(shí),應(yīng)該注意以下幾種影響查詢效率的情況:

1、 沒(méi)有創(chuàng)建索引,或者沒(méi)有正確地使用索引。這是最有可能影響數(shù)據(jù)庫(kù)查詢的原因之一。創(chuàng)建索引是優(yōu)化數(shù)據(jù)庫(kù)查詢效率的重要手段。

2、 存在死鎖的情況,從而導(dǎo)致Select語(yǔ)句掛起,無(wú)法返回結(jié)果集。

3、 返回不必要的列,很多程序員喜歡使用Select * from TableName 來(lái)查詢表可視圖中的數(shù)據(jù),* 代表表或視圖中所有字段,建議用戶在使用Select語(yǔ)句時(shí),只返回必要的列。浪費(fèi)更多的系統(tǒng)資源,從而影響查詢效率。

4、 在Select語(yǔ)句中使用Where字句,設(shè)置查詢條件,只返回必要的記錄。

5、 在Select語(yǔ)句中使用Top 關(guān)鍵字,限制返回的記錄數(shù)量。

6、 如果在Where字句中使用Like謂詞進(jìn)行模糊查詢,則要注意通配符的使用方法。

7、 慎用Union關(guān)鍵字,因?yàn)樗鼤?huì)影響查詢的效率。

8、 慎用Distinct關(guān)鍵字,因?yàn)樵诮Y(jié)果集中返回重復(fù)的記錄并不會(huì)影響查詢的效率。相反,過(guò)濾掉重復(fù)的記錄會(huì)浪費(fèi)查詢的時(shí)間和系統(tǒng)資源。因此,除非必須如此,不要使用Distinct關(guān)鍵字。

9、 如果需要經(jīng)常對(duì)表中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì),可以在表中增加一個(gè)統(tǒng)計(jì)字段,每次表中數(shù)據(jù)發(fā)生變化時(shí),動(dòng)態(tài)更新統(tǒng)計(jì)字段。這樣,在查詢統(tǒng)計(jì)結(jié)果時(shí),就不需要臨時(shí)對(duì)表中的數(shù)據(jù)統(tǒng)計(jì)計(jì)算了。

10、 如果需要多次對(duì)一個(gè)數(shù)據(jù)量非常大的表中的一部分?jǐn)?shù)據(jù)進(jìn)行查詢操作,可以將這部分?jǐn)?shù)據(jù)保存到臨時(shí)表中,然后對(duì)臨時(shí)表進(jìn)行查詢操作。如果需要,可以在臨時(shí)表上創(chuàng)建索引。

11、 在Where字句中,有時(shí)使用Between關(guān)鍵字比使用In關(guān)鍵字要快,因?yàn)镮n關(guān)鍵字對(duì)其后面的集合中的每個(gè)元素進(jìn)行比較操作。如果必須使用In關(guān)鍵字,則可將頻繁使用的值放在集合的前面,從而減少比較的次數(shù)。

12、 盡量少使用視圖,特別是嵌套視圖,可以直接從表中獲取數(shù)據(jù)。在開(kāi)發(fā)應(yīng)用程序時(shí),有時(shí)程序員為了方便,設(shè)計(jì)一個(gè)包含很多字段的大視圖,無(wú)論需要什么數(shù)據(jù),都可以通過(guò)查詢此視圖獲取到。實(shí)際上,最好從表直接獲取數(shù)據(jù),以避免查詢大視圖而造成的系統(tǒng)開(kāi)銷(xiāo)。建議使用存儲(chǔ)過(guò)程代替視圖,從而提高執(zhí)行的效率。

13、 如果不需對(duì)結(jié)果集進(jìn)行排序,則不要使用Order By字句,因?yàn)榕判虿僮鲿?huì)占用系統(tǒng)資源。

14、 不要在Where字句中“=”的左側(cè)使用函數(shù)和表達(dá)式,因?yàn)橄到y(tǒng)將無(wú)法應(yīng)用函數(shù)或表達(dá)式中的索引。

15、 當(dāng)判斷表中包含記錄時(shí),使用Exists關(guān)鍵字,而不要使用Count統(tǒng)計(jì)表中所有的記錄數(shù)量。

你的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)違反幾條建議?歡迎提出更多優(yōu)化建議!


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 伊川县| 北碚区| 肇源县| 卓尼县| 剑阁县| 天门市| 随州市| 偃师市| 乌兰县| 额济纳旗| 大邑县| 陈巴尔虎旗| 乳源| 上饶县| 改则县| 余庆县| 土默特左旗| 新乐市| 陆丰市| 古浪县| 大石桥市| 徐州市| 惠州市| 开化县| 论坛| 安康市| 石门县| 定陶县| 云林县| 青阳县| 梁河县| 临漳县| 井陉县| 宁河县| 江阴市| 庄浪县| 九江县| 桦南县| 乌兰县| 伊金霍洛旗| 项城市|