當(dāng)前位置:首頁文章首頁 IT學(xué)院 IT技術(shù)

優(yōu)化Sql語句時(shí)需要注意到的問題

作者:  來源:  發(fā)布時(shí)間:2011-5-20 15:30:27  點(diǎn)擊:

這篇文章提供給大家分享,是作者個(gè)人的看法,但是對(duì)于優(yōu)化SQL語句確實(shí)是尤為重要的,下面是所需要注意到的4段,希望對(duì)大家有所幫助。

1.盡量不要對(duì)列名進(jìn)行函數(shù)處理。而是針對(duì)后面的值進(jìn)行處理

例如where col1 = -5的效率比where -col1=5的效率要高

因?yàn)楹竺娴臈l件對(duì)列值進(jìn)行了計(jì)算。這樣的條件下優(yōu)化器無法使用索引

而是要針對(duì)所有值進(jìn)行計(jì)算之后才能再比較

2.盡量使用和數(shù)劇列一樣的值進(jìn)行操作

如果col1是數(shù)值型

那么例如where col1 = 2和where col1= ‘2′

則前者效率更高

因?yàn)楸容^字符和數(shù)值型的時(shí)候

引擎需要把兩者都轉(zhuǎn)化成雙精度然后進(jìn)行比較

3.減少函數(shù)的使用

例如where col1 >= ‘2009-10-26′ and col1 <= ‘2009-10-27′

和where datediff(day,col1,getdate())=0

后者因?yàn)橛玫胶瘮?shù)處理。所以col1上的索引又無法使用了

4.盡量不要用OR

一般對(duì)于OR的條件

優(yōu)化器一般會(huì)使用全表掃描

文章評(píng)論

軟件按字母排列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z