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

首頁 > 數據庫 > SQL Server > 正文

SQL Server數據庫查詢優化的常用方法總結

2024-08-31 00:52:41
字體:
來源:轉載
供稿:網友

SQL Server數據庫查詢優化的常用方法總結:

本文中,abigale代表查詢字符串,ada代表數據表名,alice代表字段名。


技巧一:


問題類型:access數據庫字段中含有日文片假名或其它不明字符時查詢會提示內存溢出。


解決方法:修改查詢語句


sql="select * from ada where alice like '%"&abigale&"%'"
改為
sql="select * from ada"
rs.filter = "alice like '%"&abigale&"%'"
 


技巧二:


問題類型:如何用簡易的辦法實現類似百度的多關鍵詞查詢(多關鍵詞用空格或其它符號間隔)。


解決方法:


'//用空格分割查詢字符串
ck=split(abigale," ")
'//得到分割后的數量
sck=UBound(ck)

sql="select * ada where"

在一個字段中查詢
For i = 0 To sck
SQL = SQL & tempJoinWord & "(" & _
"alice like '"&ck(i)&"%')"
tempJoinWord = " and "
Next

在二個字段中同時查詢
For i = 0 To sck
SQL = SQL & tempJoinWord & "(" & _
"alice like '"&ck(i)&"%' or " & _
"alice1 like '"&ck(i)&"%')"
tempJoinabigale = " and "
Next
 


技巧三:提高查詢效率的幾種技巧


1. 盡量不要使用 or,使用or會引起全表掃描,將大大降低查詢效率。


2. 經過實踐驗證,charindex()并不比前面加%的like更能提高查詢效率,并且charindex()會使索引失去作用(指sqlserver數據庫)


3. alice like '%"&abigale&"%' 會使索引不起作用

like '"&abigale&"%' 會使索引起作用(去掉前面的%符號)

(指sqlserver數據庫)

 


4. '%"&abigale&"%' 與'"&abigale&"%' 在查詢時的區別:

比如你的字段內容為:斯卡布羅集市

'%"&abigale&"%' :會通配所有字符串,不論查“集市”還是查“斯卡”,都會顯示結果。

'"&abigale&"%' :只通配前面的字符串,例如查“集市”是沒有結果的,只有查“斯卡”,才會顯示結果。


5. 字段提取要按照“需多少、提多少”的原則,避免“select *”,盡量使用“select 字段1,字段2,字段3........”。實踐證明:每少提取一個字段,數據的提取速度就會有相應的提升。提升的速度還要看您舍棄的字段的大小來判斷。


6. order by按聚集索引列排序效率最高。一個sqlserver數據表只能建立一個聚集索引,一般默認為ID,也可以改為其它的字段。


7. 為你的表建立適當的索引,建立索引可以使你的查詢速度提高幾十幾百倍。(指sqlserver數據庫)


以下是建立索引與不建立索引的一個查詢效率分析:


Sqlserver索引與查詢效率分析。


表 News


字段

Id:自動編號

Title:文章標題

Author:作者

Content:內容

Star:優先級

Addtime:時間


記錄:100萬條

測試機器:P4 2.8/1G內存/IDE硬盤

 


方案1:

主鍵Id,默認為聚集索引,不建立其它非聚集索引


select * from News where Title like '%"&abigale&"%'
or Author like '%"&abigale&"%' order by Id desc
 

 

從字段Title和Author中模糊檢索,按Id排序

查詢時間:50秒

 


方案2:

主鍵Id,默認為聚集索引

在Title、Author、Star上建立非聚集索引


select * from News where Title like '"&abigale&"%'
or Author like '"&abigale&"%' order by Id desc
 

 


從字段Title和Author中模糊檢索,按Id排序

查詢時間:2 - 2.5秒

 

方案3:

主鍵Id,默認為聚集索引

在Title、Author、Star上建立非聚集索引


select * from News where Title like '"&abigale&"%'
or Author like '"&abigale&"%' order by Star desc
 

 

從字段Title和Author中模糊檢索,按Star排序

查詢時間:2 秒

 


方案4:

主鍵Id,默認為聚集索引


在Title、Author、Star上建立非聚集索引
select * from News where Title like '"&abigale&"%' or Author like '"&abigale&"%'
 

 

從字段Title和Author中模糊檢索,不排序查詢時間:1.8 - 2 秒

方案5:

主鍵Id,默認為聚集索引

在Title、Author、Star上建立非聚集索引


select * from News where Title like '"&abigale&"%'

select * from News where Author like '"&abigale&"%'
 

從字段Title 或 Author中檢索,不排序查詢時間:1秒


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武宣县| 乌拉特后旗| 鸡东县| 沈阳市| 叶城县| 宿松县| 长泰县| 尉氏县| 闵行区| 新化县| 姚安县| 驻马店市| 西青区| 高淳县| 板桥市| 四子王旗| 余干县| 湖州市| 峨边| 中阳县| 衢州市| 准格尔旗| 安塞县| 额尔古纳市| 和政县| 开化县| 彰武县| 青冈县| 仪陇县| 岑溪市| 景泰县| 边坝县| 临泉县| 建阳市| 田东县| 鄂托克前旗| 大姚县| 修文县| 攀枝花市| 阿合奇县| 乌兰县|