自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

查詢表達式對SQL Server查詢性能的優(yōu)化

數(shù)據(jù)庫 SQL Server
寫查詢語句時,要避免對數(shù)據(jù)表進行的順序讀取,這樣就可以防止SQL Server查詢性能的下降,保障數(shù)據(jù)庫的查詢效率。

SQL Server查詢性能會隨著系統(tǒng)中一些變化因素而有所變化,SQL Server查詢性能有時會直線下降。表的順序讀取是導致SQL Server查詢性能直線下降的原因。

因此,在寫查詢語句時合理使用查詢條件.要避免對數(shù)據(jù)表進行的順序讀取。主要采用的方法有:

(1)在搜索條件中避免使用關(guān)鍵字LIKE,盡可能使用精確

比較

如果能夠使用一個更確定的查詢.就盡量避免使用關(guān)鍵字LIKE 。當你使用LIKE 搜索條件時,數(shù)據(jù)查詢速度降低。

SEU£CT FR0M 學生WHERE學號mce”2003%”

即便是按”學號”建立了索引.上述查詢語句使用了關(guān)鍵字LIKE 導致了順序讀寫。降低了執(zhí)行效率。如果將上面的查詢語句改為如下的形式,則可以使查詢效率提高很多。

SELECT FROM 學生WHERE (學號>:”2003”AND 學

號<”2004’’)

(2)避免使用不合理的關(guān)系運算符

在SQL Server 2000中,搜索參數(shù)的合法操作符包括=,>,<,>=,<=中的任何一個,如果使用了如”◇ ·-等的不合理的操作符.優(yōu)化器將忽略那一作為搜索參數(shù)的語句.而導致對數(shù)據(jù)表的順序讀取,不能進行優(yōu)化。

SELECT FR0M 學生WHERE 年齡<>l8

(3)在查詢條件中不要使用對列進行算術(shù)、比較和函數(shù)運算對列進行算術(shù)、列比較、函數(shù)運算,導致語句無法進行優(yōu)化處理,降低SQL Server查詢性能。

例如,成績(學號,課程代碼,平時成績,期中成績,期未成績,總平成績,學分)和上面的學生表

SELE CT ‘FR OM 成績WHERE 期未成績}0.8>60

(對列進行算術(shù)運算)

SELECT FR OM 學生WH ERE UPPERCASE f姓名、=-.ZHENLIGU”(列進行函數(shù)運算)

SELECT學生.學號,學生.姓名.成績.總平成績FR 0M 學生.成績 WHERE 學生.學號=成績.學號(列與列之間進行比較)

(4)使用正邏輯而不使用非邏輯

因為,非邏輯操作(如NOT Between、NOT IN和NOT NULL)會導致對表中的記錄從***個記錄開始順序讀?。畽z查數(shù)據(jù)表中的所有行。從而會降低查詢速度

例如:查詢年齡不在l8到20歲的記錄

SELE CT FR0M 學生WHERE 年齡N0T BETWEEN 18 A D 20

而應(yīng)改寫為:

SELECT FROM 學生WHERE年齡<18 0R年齡>20

(5)將BETWEEN轉(zhuǎn)化為AND連接的謂詞

由于執(zhí)行引擎對各種謂詞的處理方法不同. 因此把邏輯表達式”B翻 rEEN 表達式1 AND 表達式2”寫成等價且效率較高的用AND連接的兩個謂詞表達式.來提高查詢效率。

例如:查詢年齡在18到20歲的記錄

SELECT FROM 學生WHERE 年齡BE1WEEN 18 AND 20

改寫成:

SELECT FROM 學生WHERE年齡>=18 AND年齡<=20

(6)用集合運算UNION來代替邏輯運算OR

盡管索引能提高查詢效率.若在WHERE子句中使用了邏輯運算OR表達式.強迫優(yōu)化器使用順序存取。例如:

SELECT*FR0M 學生WHERE學號>”21005”AND學號<”21020”0R系別:”計算機系”

雖然在”學號”和”系別”上都建有索引.但是在上面的語句中優(yōu)化器還是使用順序存取的方法掃描整個表。因為這個語句要檢索的是分離的行的集合.所以將上面的語句改為如下語句:

SELECT FR0M 學生WHERE學號>”21005”AND 學號<”21020”

UN10N

SELECT FROM 學生WHE RE系別=”計算機系”

利用”學號”和”系別”所建索引進行查詢.將所得到的結(jié)果集,通過集合并運算UNION,得到查詢結(jié)果集,提高了查詢效率。
 

 

 

【編輯推薦】

SQL Server連接錯誤的處理方法

SQL Server管理相關(guān)的注冊表技巧

帶您了解SQL Server權(quán)限管理策略

SQL Server服務(wù)器角色簡介

SQL Server用戶帳號管理

責任編輯:段燃 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-10-21 11:10:57

SQL Server查

2024-06-27 00:36:06

2009-09-10 15:35:07

LINQ查詢表達式

2011-10-28 16:34:13

LINQ

2024-03-01 08:51:01

Django查詢表達式查詢語句

2009-03-23 10:47:43

數(shù)據(jù)庫SQLLINQ

2011-08-12 10:31:01

T-SQL查詢基于列的邏輯表達式

2009-09-17 11:08:55

LINQ查詢表達式

2009-08-27 09:13:28

LINQ查詢表達式

2009-09-07 17:18:33

LINQ查詢表達式

2009-09-11 09:53:16

Linq查詢表達式

2021-05-25 09:18:04

正則表達式Linux字符串

2019-12-17 17:01:02

MySQLSQL數(shù)據(jù)庫

2022-01-14 07:56:39

C#動態(tài)查詢

2009-09-17 09:09:50

Lambda表達式Linq查詢

2021-08-17 10:39:54

SQL Server數(shù)據(jù)庫優(yōu)化

2009-06-12 09:44:04

LINQ查詢復(fù)合from子句

2010-11-12 13:20:31

SQL Server

2010-07-01 14:23:25

SQL Server查

2009-09-16 18:03:05

Java正則表達式正則表達式實現(xiàn)
點贊
收藏

51CTO技術(shù)棧公眾號