ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

sql server 为千万级数据量的表建立分区效果如何

2022-06-26 11:02:31  阅读:151  来源: 互联网

标签:创建 分区 collection 查询 千万级 数据量 time server


1.数据库所在服务器信息

2.表数据量截图

declare @table_spaceused table (name nvarchar(100) ,rows int ,reserved nvarchar(100) ,data nvarchar(100) ,index_size nvarchar(100) ,unused nvarchar(100) ) 
insert into @table_spaceused (name,rows,reserved,data,index_size,unused ) exec sp_MSforeachtable @command1='exec sp_spaceused ''?''' 
select * from @table_spaceused order  by  rows desc

3.表索引截图

4.建立分区前查询数据所用时间

 4.1准备查询语句

查询3月26日至4月1日前的数据:查询3月份内的数据

select * from t_dd_qm_quality_collection_final where collection_time >='2022-03-26' and collection_time<'2022-04-01'

查询3月26日至4月11日前的数据:查询3、4月份内的数据

select * from t_dd_qm_quality_collection_final where collection_time >='2022-03-26' and collection_time<'2022-04-11'

查询3月26日至5月11日前的数据:查询3、4、5月份内的数据

select * from t_dd_qm_quality_collection_final where collection_time >='2022-03-26' and collection_time<'2022-05-11'

查询3月26日至6月11日前的数据:查询3、4、5、6月份内的数据

select * from t_dd_qm_quality_collection_final where collection_time >='2022-03-26' and collection_time<'2022-06-11'

4.2清除所有缓存

DBCC DROPCLEANBUFFERS

4.3重启sqlserver服务

4.4执行查询语句记录时间(毫秒),每次查询前清除缓存,重启服务器

  初期清除缓存重启服务后的CPU30%,内存47%。

  查询3月份内的数据 查询3、4月份内的数据 查询3、4、5月份内的数据(未测试) 查询3、4、5、6月份内的数据(未测试)
查询结果数据量 时间 峰值CPU 峰值内存 查询结果数据量 时间 峰值CPU 峰值内存 查询结果数据量 时间 峰值CPU 峰值内存 查询结果数据量 时间 峰值CPU 峰值内存
第一次 856150 209190 67 77 2160486 249617  65  78                
第二次 856150 229190 67 77 2160486 250946  89  78                
第三次 856150 228963 68 77 2160486 250230  77  77                
平均值 856150 222448 67.5 77 2160486 250264  77  77.7                
    22653 67 51   56160   80  59                
    22664 73 52    56230   89  59                
    22910 73 53   55890  71  58                
平均值                                

 

5.为表创建分区

5.1经查询表中最早的时间是2021-09月,最晚的时间是2022-06月。本表只留近90天内的数据,其余符合历史化条件的均已历史化。2022-03月前的数据有10万+条,故可以分4个区,3月份前一个区,3月份数据一个区,4月份数据一个区,5月份数据一个区,6月份及以后一个区。

5.2创建数据库文件组:选择数据库进入属性页面,选择文件组点击添加文件组,依次录入5个文件组名称,点击确定。

 

 5.3创建数据库文件:选择数据库进入属性页面,选择文件点击添加文件,依次录入5个文件名称并选择相应的文件组,点击确定。

 5.4创建分区:选择要创建分区的表,右键选择存储-->创建分区,进入创建分区向导。

5.4.1选择分区列:选择采集时间collection_time

 

5.4.2创建分区函数

5.4.3创建分区方案

 

 5.4.4映射分区范围选择左边界,文件组中依次选择原先创建的文件组,点击设置边界,开始日期输入20220301,结束日期输入20220601,日期范围选择每月,确定后会按月依次填充到边界一列中。之后点击下一步

预计存储控件按钮不要随便点,若表内数据量小还可以,计算出来不耗时,若表内数据量大会执行很长时间。

 

 5.4.5选择输出模板,表内数据量小可以立即执行,表内数据量大选择创建脚本,之后再编辑器内执行。我这里选择创建脚本。之后点击完成。

 

 5.4.6编辑器内点击执行,创建分区。1387万的数据,脚本方式执行创建分区耗时40分钟。

 6.建立分区后查询数据所用时间

 

标签:创建,分区,collection,查询,千万级,数据量,time,server
来源: https://www.cnblogs.com/luna-hehe/p/16406813.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有