一個(gè)SQL Server數(shù)據(jù)庫(kù)查詢優(yōu)化方法總結(jié)
之前已經(jīng)為大家介紹了兩種SQL Server數(shù)據(jù)庫(kù)查詢優(yōu)化方法總結(jié),即SQL Server數(shù)據(jù)庫(kù)查詢優(yōu)化的常用方法總結(jié)下面就為大家介紹例外一種。
技巧:提高查詢效率的幾種技巧
1. 盡量不要使用 or,使用or會(huì)引起全表掃描,將大大降低查詢效率。
2. 經(jīng)過(guò)實(shí)踐驗(yàn)證,charindex()并不比前面加%的like更能提高查詢效率,并且charindex()會(huì)使索引失去作用(指sqlserver數(shù)據(jù)庫(kù))
3. alice like '%"&abigale&"%' 會(huì)使索引不起作用
like '"&abigale&"%' 會(huì)使索引起作用(去掉前面的%符號(hào))
(指sqlserver數(shù)據(jù)庫(kù))
4. '%"&abigale&"%' 與'"&abigale&"%' 在查詢時(shí)的區(qū)別:
比如你的字段內(nèi)容為:斯卡布羅集市
'%"&abigale&"%' :會(huì)通配所有字符串,不論查“集市”還是查“斯卡”,都會(huì)顯示結(jié)果。
'"&abigale&"%' :只通配前面的字符串,例如查“集市”是沒(méi)有結(jié)果的,只有查“斯卡”,才會(huì)顯示結(jié)果。
5. 字段提取要按照“需多少、提多少”的原則,避免“select *”,盡量使用“select 字段1,字段2,字段3........”。實(shí)踐證明:每少提取一個(gè)字段,數(shù)據(jù)的提取速度就會(huì)有相應(yīng)的提升。提升的速度還要看您舍棄的字段的大小來(lái)判斷。
6. order by按聚集索引列排序效率***。一個(gè)sqlserver數(shù)據(jù)表只能建立一個(gè)聚集索引,一般默認(rèn)為ID,也可以改為其它的字段。
7. 為你的表建立適當(dāng)?shù)乃饕?,建立索引可以使你的查詢速度提高幾十幾百倍。(指sqlserver數(shù)據(jù)庫(kù))
以下是建立索引與不建立索引的一個(gè)查詢效率分析:
Sqlserver索引與查詢效率分析。
表 News
字段
Id:自動(dòng)編號(hào)
Title:文章標(biāo)題
Author:作者
Content:內(nèi)容
Star:優(yōu)先級(jí)
Addtime:時(shí)間
記錄:100萬(wàn)條
測(cè)試機(jī)器:P4 2.8/1G內(nèi)存/IDE硬盤(pán)
方案1:
主鍵Id,默認(rèn)為聚集索引,不建立其它非聚集索引
以下為引用的內(nèi)容:
select * from News where Title like '%"&abigale&"%'
or Author like '%"&abigale&"%' order by Id desc
從字段Title和Author中模糊檢索,按Id排序
查詢時(shí)間:50秒
方案2:
主鍵Id,默認(rèn)為聚集索引
在Title、Author、Star上建立非聚集索引
以下為引用的內(nèi)容:
select * from News where Title like '"&abigale&"%'
or Author like '"&abigale&"%' order by Id desc
從字段Title和Author中模糊檢索,按Id排序
查詢時(shí)間:2 - 2.5秒
方案3:
主鍵Id,默認(rèn)為聚集索引
在Title、Author、Star上建立非聚集索引
以下為引用的內(nèi)容:
select * from News where Title like '"&abigale&"%'
or Author like '"&abigale&"%' order by Star desc
從字段Title和Author中模糊檢索,按Star排序
查詢時(shí)間:2 秒
方案4:
主鍵Id,默認(rèn)為聚集索引
在Title、Author、Star上建立非聚集索引
以下為引用的內(nèi)容:
select * from News where Title like '"&abigale&"%' or Author like '"&abigale&"%'
從字段Title和Author中模糊檢索,不排序查詢時(shí)間:1.8 - 2 秒
方案5:
主鍵Id,默認(rèn)為聚集索引
在Title、Author、Star上建立非聚集索引
以下為引用的內(nèi)容:
select * from News where Title like '"&abigale&"%'
或
select * from News where Author like '"&abigale&"%'
從字段Title 或 Author中檢索,不排序查詢時(shí)間:1秒
SQL Server數(shù)據(jù)庫(kù)查詢優(yōu)化的方法有很多種,這里為大家總結(jié)的這一點(diǎn),希望是大家需要的。
【編輯推薦】