日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
SQL查詢(xún)效率:100w數(shù)據(jù)查詢(xún)只需要1秒鐘

關(guān)于SQL查詢(xún)效率,100w數(shù)據(jù),查詢(xún)只要1秒,您相信嗎?大家都知道,現(xiàn)在的數(shù)據(jù)庫(kù)儲(chǔ)存容量是越來(lái)越大,數(shù)據(jù)庫(kù)的查詢(xún)效率可能在一定程度上有所降低,現(xiàn)在的技術(shù)是飛速發(fā)展進(jìn)步,實(shí)現(xiàn)100w數(shù)據(jù)查詢(xún)只需要1秒鐘已經(jīng)是可能的啦,下文中就為大家介紹這種方法,希望對(duì)大家有幫助。

機(jī)器情況:

p4: 2.4

內(nèi)存: 1 G

os: windows 2003

數(shù)據(jù)庫(kù):

SQL Server 2000

目的: 查詢(xún)性能測(cè)試,比較兩種查詢(xún)的性能

SQL查詢(xún)效率 step by step

 setp 1.

建表

create table t_userinfo

(

userid int identity(1,1) primary key nonclustered,

nick varchar(50) not null default '',

classid int not null default 0,

writetime datetime not null default getdate()

)

go

建索引

create clustered index ix_userinfo_classid on t_userinfo(classid)

go

step 2.

declare @i int

declare @k int

declare @nick varchar(10)

set @i = 1

while @i<1000000

begin

set @k = @i % 10

set @nick = convert(varchar,@i)

insert into t_userinfo(nick,classid,writetime) values(@nick,@k,getdate())

set @i = @i + 1

end

耗時(shí) 08:27 ,需要耐心等待

step 3.

select top 20 userid,nick,classid,writetime from t_userinfo

where userid not in

(

select top 900000 userid from t_userinfo order by userid asc

)

耗時(shí) 8 秒 ,夠長(zhǎng)的

step 4.

select a.userid,b.nick,b.classid,b.writetime from

(

select top 20 a.userid from

(

select top 900020 userid from t_userinfo order by userid asc

) a order by a.userid desc

) a inner join t_userinfo b on a.userid = b.userid

order by a.userid asc

耗時(shí) 1 秒,太快了吧,不可以思議

step 5

where 查詢(xún)

select top 20 userid,nick,classid,writetime from t_userinfo

where classid = 1 and userid not in

(

select top 90000 userid from t_userinfo

where classid = 1

order by userid asc

)

耗時(shí) 2 秒

step 6

where 查詢(xún)

select a.userid,b.nick,b.classid,b.writetime from

(

select top 20 a.userid from

(

select top 90000 userid from t_userinfo

where classid = 1

order by userid asc

) a order by a.userid desc

) a inner join t_userinfo b on a.userid = b.userid

order by a.userid asc

查詢(xún)分析器顯示不到 1 秒.

查詢(xún)效率分析:

子查詢(xún)?yōu)榇_保消除重復(fù)值,必須為外部查詢(xún)的每個(gè)結(jié)果都處理嵌套查詢(xún)。在這種情況下可以考慮用聯(lián)接查詢(xún)來(lái)取代。

如果要用子查詢(xún),那就用EXISTS替代IN、用NOT EXISTS替代NOT IN。因?yàn)镋XISTS引入的子查詢(xún)只是測(cè)試是否存在符合子查詢(xún)中指定條件的行,效率較高。無(wú)論在哪種情況下,NOT IN都是***效的。因?yàn)樗鼘?duì)子查詢(xún)中的表執(zhí)行了一個(gè)全表遍歷。

建立合理的索引,避免掃描多余數(shù)據(jù),避免表掃描!

幾百萬(wàn)條數(shù)據(jù),照樣幾十毫秒完成查詢(xún)。


當(dāng)前題目:SQL查詢(xún)效率:100w數(shù)據(jù)查詢(xún)只需要1秒鐘
網(wǎng)頁(yè)網(wǎng)址:http://www.5511xx.com/article/cdcsdip.html