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

主站蜘蛛池模板: 亚洲热在线 | 国产美女免费国产 | 日韩黄色在线观看 | 国内自拍一二三四2021 | 日韩a级大片 | 国产成品精品午夜视频 | 色一涩 | 精品国产午夜久久久久九九 | 日本青草 | 国产三级网 | 伊人久久免费视频 | 毛片一| 国产精品欧美日韩视频一区 | 成人福利视频 | 91九色视频 | 欧美性开放视频 | 婷婷六月久久综合丁香可观看 | 日韩中文字幕精品久久 | 黄视频观看 | 色综合手机在线 | 亚洲综合图片区 | 91极品国产 | 国产成人香蕉在线视频网站 | 国产精品视频第二区第二页 | a级国产乱理论片在线观看 a级国产乱理论片在线观看看 | 久久久国产精品va麻豆 | 国产欧美在线观看精品一区二区 | 国产免费麻豆 | 2020国产精品自拍 | 亚洲精品综合久久 | 免费人成网站尤物在线观看 | 黄网在线观看视频 | 大尺度毛片 | 成人精品一区二区三区 | 搞黄免费视频 | 深爱五月激情 | 天天做天天爱天天爽综合区 | 亚洲欧美国产精品久久久 | 中文字幕a有搜索网站 | 怡红院在线视频精品观看 | 国产精品吹潮香蕉在线观看 |