一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

千萬(wàn)數(shù)據(jù)的連續(xù)ID表,快速讀取其中指定的某1000條數(shù)據(jù)?

  有這樣一個(gè)需求:一張上千萬(wàn)數(shù)據(jù)的表,結(jié)構(gòu)很簡(jiǎn)單:ID是自增的,你怎么快速讀取其中指定的某1000條數(shù)據(jù),比如100萬(wàn)到100萬(wàn)零1000?這個(gè)需求其實(shí)很簡(jiǎn)單,因?yàn)槭亲栽鲂虸D,可能分兩種狀況:有聚集索引或Heap,如果是后者,我想用ID和新增時(shí)間組建非聚集索引。效果應(yīng)該相差不大。于是動(dòng)手,過(guò)程如下:

  一、準(zhǔn)備測(cè)試數(shù)據(jù)

  基本測(cè)試環(huán)境:
邀月工作室

  插入1000萬(wàn)測(cè)試數(shù)據(jù):


/***************創(chuàng)建千萬(wàn)級(jí)測(cè)試數(shù)據(jù)庫(kù)***********
****************downmoon 3w@live.cn **************
*/

Create database HugeData_10Millons
go
use HugeData_10Millons
go

/***************創(chuàng)建測(cè)試表*********************
****************downmoo 3w@live.cn **************
*/

IF NOT OBJECT_ID('[bigTable]') IS NULL
DROP TABLE [bigTable]
GO
Create table bigTable
(PID
int identity(1,1) primary key not null
,PName
nvarchar(100) null
,AddTime
dateTime null
,PGuid
Nvarchar(40)
)
go

truncate table [bigTable]

/***************創(chuàng)建第一個(gè)25萬(wàn)測(cè)試數(shù)據(jù)*********************
****************downmoo 3w@live.cn **************
*/

declare @d datetime
set @d=getdate()

declare @i int
set @i=1
while @i<=250000
begin
insert into [bigTable]
select cast(datepart(ms,getdate()) as nvarchar(3))+Replicate('A',datepart(ss,getdate()))
,
getdate()
,
NewID()
set @i=@i+1
end

select [語(yǔ)句執(zhí)行花費(fèi)時(shí)間(毫秒)]=datediff(ms,@d,getdate())

/*
語(yǔ)句執(zhí)行花費(fèi)時(shí)間(毫秒)
94750
*/

/***************創(chuàng)建第二個(gè)25萬(wàn)測(cè)試數(shù)據(jù)*********************
****************downmoo 3w@live.cn **************
*/

declare @d datetime
set @d=getdate()

declare @i int
set @i=1
while @i<=250000
begin
insert into [bigTable]
select cast(datepart(ms,getdate()) as nvarchar(3))+Replicate(Substring(cast(NEWID() as nvarchar(40)),1,6),3)
,
getdate()
,
NewID()
set @i=@i+1
end

select [語(yǔ)句執(zhí)行花費(fèi)時(shí)間(毫秒)]=datediff(ms,@d,getdate())

/*
語(yǔ)句執(zhí)行花費(fèi)時(shí)間(毫秒)
115640
*/

/***************創(chuàng)建900萬(wàn)測(cè)試數(shù)據(jù)*********************
****************downmoo 3w@live.cn **************
*/

declare @d datetime
set @d=getdate()

declare @i int
set @i=1
while @i<=9000000
begin
insert into [bigTable]
select replicate('X',ROUND((RAND()* 60),0) )+cast(datepart(ms,getdate()) as nvarchar(3))
,
getdate()
,
NewID()
set @i=@i+1
end

select [語(yǔ)句執(zhí)行花費(fèi)時(shí)間(毫秒)]=datediff(ms,@d,getdate())
/*
語(yǔ)句執(zhí)行花費(fèi)時(shí)間(毫秒)
3813686
*/

/***************創(chuàng)建最后50萬(wàn)測(cè)試數(shù)據(jù)*********************
****************downmoo 3w@live.cn **************
*/

declare @d datetime
set @d=getdate()

declare @i int
set @i=1
while @i<=500000
begin
insert into [bigTable]
select replicate('X',ROUND((RAND()* 60),0) )+cast(NewID() as nvarchar(40))
,
getdate()
,
NewID()
set @i=@i+1
end

select [語(yǔ)句執(zhí)行花費(fèi)時(shí)間(毫秒)]=datediff(ms,@d,getdate())
/*
語(yǔ)句執(zhí)行花費(fèi)時(shí)間(毫秒)
207436
*/

/*
檢查數(shù)量
select count(1) from dbo.bigTable
----------10000000
清除日志
DUMP TRANSACTION HugeData_10Millons WITH NO_LOG
BACKUP LOG HugeData_10Millons WITH NO_LOG
DBCC SHRINKDATABASE(HugeData_10Millons)

*/


  三、修改聚集索引,以檢查查詢速度

 

/*刪除系統(tǒng)自動(dòng)創(chuàng)建的聚集索引
*/
ALTER TABLE [dbo].[bigTable] DROP CONSTRAINT [PK__bigTable__7C8480AE]
go


/*創(chuàng)建一個(gè)非聚集索引
在PID和addtime字段
*/
CREATE NONCLUSTERED INDEX bigTable_NoClusIdx
ON [bigTable]([AddTime] ASC,[PID] ASC);
go
DROP Index [bigTable_NoClusIdx] on dbo.[bigTable]


/*創(chuàng)建一個(gè)非聚集索引
在PID字段
*/

Create NONCLUSTERED INDEX bigTable_NoclusIdx
ON [bigTable](PID);
go

DROP Index [bigTable_NoClusIdx] on dbo.[bigTable]

/*創(chuàng)建一個(gè)非聚集索引
在AddTime字段
*/
CREATE NONCLUSTERED INDEX bigTable_NoclusIdx
ON [bigTable](AddTime);
go

DROP Index [bigTable_NoClusIdx] on dbo.[bigTable]

/*創(chuàng)建一個(gè)非聚集索引
在GUID字段
*/

CREATE NONCLUSTERED INDEX bigTable_NoclusIdx
ON [bigTable](PGuid);
go

DROP Index [bigTable_NoClusIdx] on dbo.[bigTable]


/*創(chuàng)建一個(gè)聚集索引
在GUID字段
*/

CREATE CLUSTERED INDEX bigTable_ClusIdx
ON [bigTable](PGuid);
go

DROP Index [bigTable_ClusIdx] on dbo.[bigTable]

/*創(chuàng)建一個(gè)聚集索引
在addTime字段
*/
CREATE CLUSTERED INDEX bigTable_ClusIdx
ON [bigTable](AddTime);
go

DROP Index [bigTable_ClusIdx] on dbo.[bigTable]


/*創(chuàng)建一個(gè)聚集索引
在PID字段
*/
CREATE CLUSTERED INDEX bigTable_ClusIdx
ON [bigTable](PID);
go

it知識(shí)庫(kù)千萬(wàn)數(shù)據(jù)的連續(xù)ID表,快速讀取其中指定的某1000條數(shù)據(jù)?,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲国产高清一区二区三区 | 夜夜揉揉日日人人视频 | 欧美成人丝袜一区二区 | 亚洲欧美日韩国产一区二区三区精品 | 女人十八黄毛片 | 欧美日韩亚洲另类人人澡 | 精品日韩一区二区三区 | 男女男精品视频网站 | 久久中文网 | 国产 麻豆 欧美亚洲综合久久 | 国产成人精品午夜免费 | 伊人成人在线 | 精品国产成人a区在线观看 精品国产成人a在线观看 | 午夜国产福利在线 | 午夜视频网址 | 91欧美精品综合在线观看 | 婷婷香蕉 | 怡红院免费va男人的天堂 | 久久久久这里只有精品 | 高清欧美在线三级视频 | 91九色视频 | 牛牛本精品99久久精品88m | 免费一区二区三区免费视频 | 国产成人一区二区三区影院免费 | 伊人不卡久久大香线蕉综合影院 | 91视频看看 | 狠狠色狠狠色综合网 | 欧美videos极品另类 | 伊人网欧美 | 99爱在线精品视频免费观看9 | 91在线视频免费91 | 日本亚洲精品色婷婷在线影院 | 成人小视频在线播放 | 欧美日韩国产一区二区三区伦 | 大色网小色网 | 免费视频色 | 国产aⅴ一区二区三区 | 在线观看亚洲精品国产 | 国产三级网站在线观看 | 久久久麻豆 | 香蕉视频国产精品 |