where 子句的執(zhí)行順序
更新時(shí)間:2009年04月05日 00:35:02 作者:
貌似在2005之前的版本中,where子句的順序是從前往后的。但是又貌似在2005的版本中進(jìn)行了優(yōu)化,所有的順序都被統(tǒng)一成了以過(guò)濾能力進(jìn)行排序的語(yǔ)句。
看代碼:
set statistics io on
set statistics time on
go
set statistics profile on
go
use pubs
select * from authors
where (au_fname like 'S%' or au_fname like 'a%')
and (state like 'CA' or state like 'UT')
and (cast(zip as int) > 90000)
select * from authors
where (au_fname like 'S%' or au_fname like 'a%')
and (cast(zip as int) > 90000)
and (state like 'CA' or state like 'UT')
select * from authors
where (cast(zip as int) > 90000)
and (au_fname like 'S%' or au_fname like 'a%')
and (state like 'CA' or state like 'UT')
目的:想驗(yàn)證where語(yǔ)句的各個(gè)條件的查詢順序
環(huán)境:SQLServer 2005Express版本
步驟:顯示查詢計(jì)劃
結(jié)果:無(wú)一例外,都被統(tǒng)一成了這樣的代碼
|--Clustered Index Scan(OBJECT:([pubs].[dbo].[authors].[UPKCL_auidind]), WHERE:(CONVERT(int,[pubs].[dbo].[authors].[zip],0)>(90000) AND ([pubs].[dbo].[authors].[au_fname] like 'S%' OR [pubs].[dbo].[authors].[au_fname] like 'a%') AND ([pubs].[dbo].[authors].[state] like 'CA' OR [pubs].[dbo].[authors].[state] like 'UT')))
結(jié)論:貌似在2005之前的版本中,where子句的順序是從前往后的。但是又貌似在2005的版本中進(jìn)行了優(yōu)化,所有的順序都被統(tǒng)一成了以過(guò)濾能力進(jìn)行排序的語(yǔ)句。
復(fù)制代碼 代碼如下:
set statistics io on
set statistics time on
go
set statistics profile on
go
use pubs
select * from authors
where (au_fname like 'S%' or au_fname like 'a%')
and (state like 'CA' or state like 'UT')
and (cast(zip as int) > 90000)
select * from authors
where (au_fname like 'S%' or au_fname like 'a%')
and (cast(zip as int) > 90000)
and (state like 'CA' or state like 'UT')
select * from authors
where (cast(zip as int) > 90000)
and (au_fname like 'S%' or au_fname like 'a%')
and (state like 'CA' or state like 'UT')
目的:想驗(yàn)證where語(yǔ)句的各個(gè)條件的查詢順序
環(huán)境:SQLServer 2005Express版本
步驟:顯示查詢計(jì)劃
結(jié)果:無(wú)一例外,都被統(tǒng)一成了這樣的代碼
復(fù)制代碼 代碼如下:
|--Clustered Index Scan(OBJECT:([pubs].[dbo].[authors].[UPKCL_auidind]), WHERE:(CONVERT(int,[pubs].[dbo].[authors].[zip],0)>(90000) AND ([pubs].[dbo].[authors].[au_fname] like 'S%' OR [pubs].[dbo].[authors].[au_fname] like 'a%') AND ([pubs].[dbo].[authors].[state] like 'CA' OR [pubs].[dbo].[authors].[state] like 'UT')))
結(jié)論:貌似在2005之前的版本中,where子句的順序是從前往后的。但是又貌似在2005的版本中進(jìn)行了優(yōu)化,所有的順序都被統(tǒng)一成了以過(guò)濾能力進(jìn)行排序的語(yǔ)句。
相關(guān)文章
InnoDB主鍵索引樹和二級(jí)索引樹的場(chǎng)景分析
本文通過(guò)場(chǎng)景分析給大家介紹了InnoDB主鍵索引樹和二級(jí)索引樹的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03SQL服務(wù)器面臨的危險(xiǎn)和補(bǔ)救.讀[十種方法]后感.
SQL服務(wù)器面臨的危險(xiǎn). 危險(xiǎn):沒(méi)有防火墻保護(hù),暴露在公網(wǎng)中. 后果:SQL蠕蟲感染和黑客進(jìn)行拒絕服務(wù)攻擊、緩存溢出、SQL盲注和其它攻擊. 補(bǔ)救:安裝一款防火墻,即使經(jīng)費(fèi)有限,網(wǎng)上也有大把的免費(fèi)產(chǎn)品.2008-05-05遠(yuǎn)程數(shù)據(jù)庫(kù)的表超過(guò)20個(gè)索引的影響詳細(xì)解析
這篇文章主要介紹了遠(yuǎn)程數(shù)據(jù)庫(kù)的表超過(guò)20個(gè)索引的影響詳細(xì)解析,具有一定參考價(jià)值,需要的朋友可以了解下。2017-10-10Sql Server、Access數(shù)據(jù)排名的實(shí)現(xiàn)方法(例如:成績(jī)排名)
在很多時(shí)候,我們需要統(tǒng)計(jì)數(shù)據(jù)的排名情況,最常見(jiàn)的是成績(jī)、投票數(shù)等等的。2009-06-06對(duì)分區(qū)表進(jìn)行alter-switch時(shí)遇到的錯(cuò)誤
將一個(gè)表的數(shù)據(jù)加入分區(qū)表中,可以通過(guò)如下步驟進(jìn)行2009-07-07SQLite不支持Right Join的解決辦法GROUP BY
sqlite真的不錯(cuò),就是不支持right join,所以我們用下面的方法解決2008-06-06