一区二区久久-一区二区三区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)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久亚洲福利 | 国产在线精品美女观看 | 欧美另类娇小 | 国产大臿蕉香蕉大视频 | 中文字幕日韩专区精品系列 | 最近更新中文字幕第一页 | 国产在线91观看免费观看 | 三级小说第一页 | 国产精品欧美亚洲韩国日本久久 | 国产真实乱子伦精品 | 国产欧美精品一区二区色综合 | 91精品免费视频 | 人人做人人爽人人爱秋霞影视 | 久久免费视频网站 | 欧美日韩理论 | 一级毛片特黄久久免费看 | 超级成人97碰碰碰免费 | 欧美福利网站 | 一级做a爰性色毛片免费 | 成人a大片高清在线观看 | 国产91一区二区在线播放不卡 | 三级网站国产 | 中文字幕在线精品视频万部 | 99精品国产福利在线观看 | 国产欧美成人 | 免费国产成人手机在线观看 | 成人免费在线视频观看 | 国产精品视频免费视频 | 色妹子影院 | 视频一二三区 | 国产美女一级片 | 国产色婷婷免费视频 | 亚洲伊人久久大香线焦 | 四虎精品影院4hutv四虎 | 国产高清精品自在线看 | 国产乱理论片在线观看理论 | 色狠狠一区二区三区香蕉蜜桃 | 99这里只有精品6 | 国产网红福利 | 国产一区二区高清在线 | 五月婷婷激情在线 |