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

千萬數據的連續ID表,快速讀取其中指定的某1000條數據?

  有這樣一個需求:一張上千萬數據的表,結構很簡單:ID是自增的,你怎么快速讀取其中指定的某1000條數據,比如100萬到100萬零1000?這個需求其實很簡單,因為是自增型ID,可能分兩種狀況:有聚集索引或Heap,如果是后者,我想用ID和新增時間組建非聚集索引。效果應該相差不大。于是動手,過程如下:

  一、準備測試數據

  基本測試環境:
邀月工作室

  插入1000萬測試數據:


/***************創建千萬級測試數據庫***********
****************downmoon 3w@live.cn **************
*/

Create database HugeData_10Millons
go
use HugeData_10Millons
go

/***************創建測試表*********************
****************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]

/***************創建第一個25萬測試數據*********************
****************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 [語句執行花費時間(毫秒)]=datediff(ms,@d,getdate())

/*
語句執行花費時間(毫秒)
94750
*/

/***************創建第二個25萬測試數據*********************
****************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 [語句執行花費時間(毫秒)]=datediff(ms,@d,getdate())

/*
語句執行花費時間(毫秒)
115640
*/

/***************創建900萬測試數據*********************
****************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 [語句執行花費時間(毫秒)]=datediff(ms,@d,getdate())
/*
語句執行花費時間(毫秒)
3813686
*/

/***************創建最后50萬測試數據*********************
****************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 [語句執行花費時間(毫秒)]=datediff(ms,@d,getdate())
/*
語句執行花費時間(毫秒)
207436
*/

/*
檢查數量
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)

*/


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

 

/*刪除系統自動創建的聚集索引
*/
ALTER TABLE [dbo].[bigTable] DROP CONSTRAINT [PK__bigTable__7C8480AE]
go


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


/*創建一個非聚集索引
在PID字段
*/

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

DROP Index [bigTable_NoClusIdx] on dbo.[bigTable]

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

DROP Index [bigTable_NoClusIdx] on dbo.[bigTable]

/*創建一個非聚集索引
在GUID字段
*/

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

DROP Index [bigTable_NoClusIdx] on dbo.[bigTable]


/*創建一個聚集索引
在GUID字段
*/

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

DROP Index [bigTable_ClusIdx] on dbo.[bigTable]

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

DROP Index [bigTable_ClusIdx] on dbo.[bigTable]


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

it知識庫千萬數據的連續ID表,快速讀取其中指定的某1000條數據?,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久一日本道色综合久久 | 激情五月婷婷久久 | 在线观看国产一区二区三区 | 成人十八影院在线观看 | 欧美日韩国产另类一区二区三区 | 李雅在线观看一区国产 | 五月天婷婷爱 | 欧美黄www免费 | 91精品久久久久久久久久 | 91精品国产自产在线观看 | 亚洲精品福利网站 | 99情趣网 | 久久国产精品系列 | 亚洲精品香蕉婷婷在线观看 | 四虎sihu新版影院亚洲精品 | 国产网站免费 | 男女性色大片免费网站 | 亚洲香蕉在线视频 | 国产女同一区二区三区五区 | 久久永久视频 | 久久成人小视频 | 日韩 在线视频精品 | 久热精品6 | 五月六月激情 | 免费观看色视频 | 欧美a极品极品欧美 | www色.com| 亚洲男人的天堂久久香蕉 | 日韩亚洲欧美在线爱色 | 国产精品黄大片在线播放 | 热re66久久精品国产99re | 精品国产夜色在线 | 免费一级毛片不卡不收费 | 国产一区二区三区手机在线观看 | 黄色网视频 | 色综合久久九月婷婷色综合 | 中文字幕精品亚洲无线码二区 | 朝鲜美女免费一级毛片 | 伊人久久免费 | 黄在线视频播放免费网站 | 看毛片视频 |