SqlServer大数据的分区方案
这里介绍的是大数据量的维护日志的分区解决方案:
每个月1张数据表,1个分组文件、31个分区(按每天1个分区)。。。。
为了日后维护方便,直接删除旧的日志数据文件就可以,而不需要去做分区压缩。
--用的是测试数据库
--注释的脚本表示在建库的时候只需要执行一次就可以了
--use Test
--create partition function DAY_PF (tinyint)
--as range LEFT
--for values (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31)
--go --下面这段注释是用来获取当前数据库的物理目录位置
--declare @filename varchar(250)
--select @filename = left(filename,charindex('\',reverse(filename))+2) from master.dbo.sysdatabases where name = 'Test'
--print @filename --删除分区文件、分组的sql
--alter database UnIncSoft remove file [xxx];
--alter database UnIncSoft remove filegroup [xxx]; --下面才是要每次执行的脚本
--可以先运行后打印出脚本,再把脚本复制到执行窗口去运行 declare @year varchar(4)--年
declare @month varchar(2)--月
declare @tablePre varchar(50)--表名称前缀
declare @database varchar(50)--数据库名称
declare @dataBasePath varchar(250)--数据库的目录
declare @useCommand varchar(100)--use数据库
declare @sqlCommand varchar(2000)--sql命令 set @year=N''
set @month=N''
set @tablePre=N'TestLog'
set @database = N'Test'
set @dataBasePath=N'E:\SQLDATA\Data\' --命令开始
select @useCommand = N'USE '+@database+N';' --创建文件组
declare @file varchar(50)
declare @filegroup varchar(50)
select @file = N'DATA_'+@database+@year+@month
select @filegroup=N'DATA_'+@database+@year+@month select @sqlCommand = @useCommand+N'ALTER DATABASE '+@database+N' ADD FILEGROUP '+@filegroup+';
go'
print @sqlCommand
--EXECUTE sp_executesql @sql
select @sqlCommand = @useCommand+
N'ALTER DATABASE '+@database+N' ADD FILE
(NAME = N'''+@file+''',
FILENAME = N'''+@dataBasePath+@file+'.ndf'',
SIZE = 10MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 10MB)
TO FILEGROUP '+@filegroup+';
go'
print @sqlCommand
--EXECUTE sp_executesql @sql --创建分区方案
declare @psName varchar(50)
select @psName=N'DAY_PS'+@year+@month
select @sqlCommand = @useCommand+
N'create partition scheme '+@psName+
N' as partition DAY_PF
to (['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
['+@filegroup+'],
[PRIMARY]);
go'
print @sqlCommand
--EXECUTE sp_executesql @sql --创建表
declare @table varchar(50)
select @table=@tablePre+@year+@month
select @sqlCommand = @useCommand+
N'create table '+@table+N'(
autoID bigint identity,
platform tinyint not null,
identifier varchar(255) not null,
oldVersion varchar(128) not null,
oldVername varchar(128) not null,
newVersion varchar(128) not null,
newVername varchar(128) not null,
md5 varchar(255) null,
num bigint not null DEFAULT((0)),
calcDay tinyint not null
)
on '+@psName+'(calcDay);
go'
print @sqlCommand
--EXECUTE sp_executesql @sql --创建索引
select @sqlCommand = @useCommand+
N'create clustered index IX_ID on '+@table +'(
autoID ASC);
go'
print @sqlCommand
--EXECUTE sp_executesql @sql select @sqlCommand = @useCommand+
N'create nonclustered index Index_platform_num on '+@table +'(
platform,num DESC);
go'
print @sqlCommand
--EXECUTE sp_executesql @sql select @sqlCommand = @useCommand+
N'create nonclustered index Index_p_i_vsion_n on '+@table +'(
platform,identifier,oldVersion,oldVername,newVersion,newVername,num DESC);
go'
print @sqlCommand
--EXECUTE sp_executesql @sql
SqlServer大数据的分区方案的更多相关文章
- (整理)SQLServer 大数据的插入与查询
最近几天一直在折腾大数据量的查询,最后在索引.分页存储过程和控件以及视图的帮助下,搞定了.这篇文章记录解决问题时候查看的网友的分享链接,以及大数据量数据的插入链接. DatagridView Virt ...
- AppBoxFuture: 大数据表分区的3种策略
之前的文章"分而治之"在介绍大表分区时,作者尚未实现不同的分区策略,即只能按指定的分区键进行分区.这次作者完善了一下分区策略,在规划大表分区时可以按Hash或者时间范围进行分区 ...
- 智慧文旅IOC大数据可视化建设方案
一.建设背景 自2020年以来,疫情对各行各业的都造成了不同程度的影响,对依赖人口消费实现商业价值的文旅行业更是受到了更大的冲击,因此在疫情当下以及科技发达的今天,如何利用科技的手段赋能文旅行业进行数 ...
- Sqlserver大数据量分区表创建
/* 逆向删除对象 DROP PARTITION SCHEME [PS_BasicPolicy2014]; DROP PARTITION FUNCTION [PF_BasicPolicy2014]; ...
- 案例分析:大数据平台技术方案及案例(ppt)
大数据平台是为了计算,现今社会所产生的越来越大的数据量,以存储.运算.展现作为目的的平台.大数据技术是指从各种各样类型的数据中,快速获得有价值信息的能力.适用于大数据的技术,包括大规模并行处理(MPP ...
- SQLServer大数据优化方法若干
1.使用ndf文件. 自从sqlserver2005后,默认不增生成ndf文件. mdf:priMary Data file ldf:Log Data File ndf:secoNdary data ...
- 【数据处理】SQL Server高效大数据量存储方案SqlBulkCopy
要求将Excel数据,大批量的导入到数据库中,尽量少的访问数据库,高性能的对数据库进行存储. 一个比较好的解决方案,就是采用SqlBulkCopy来处理存储数据. SqlBulkCopy存储大批量的数 ...
- 大数据Excel导出方案
static void Main(string[] args) { Excel.Application app = new Excel.Application(); Excel._Workbook r ...
- sqlserver 大数据量的insert、delete操作优化
http://blog.csdn.net/lanyuzhen/article/details/7547476 --大批量导出orders表:insert DBCC DROPCLEANBUFFERS ...
随机推荐
- Java进程堆外内存(off heap)大小
一.使用ByteBuffer.allocateDirect分配的off heap内存大小 本机进程 在Jvisualvm中安装 Mbeans插件.然后查看java.nio/BufferPool/dir ...
- 【poj 1724】 ROADS 最短路(dijkstra+优先队列)
ROADS Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12436 Accepted: 4591 Description N ...
- java(JSP)中几种获取项目路径方式
在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getPro ...
- URAL 1326. Bottle Taps(简单的状压dp)
题目不太好读懂,就是先给你一个n代表要从n个物品中买东西,然后告诉你这n个东西的单位价格,在给你m个集合的情况.就是每一个结合中有x件物品.他们合起来买的价格是k.这x件物品依次是:p1--px.之后 ...
- PhoneGap:JS跨域请求
PhoneGap开发,理论上好处多多.但因为javascript是其中的主角,并且是直接存放于手机,跟服务器数据交互,就会有一个跨域访问的问题. 当然,这个问题肯定有解决方案,不然的话,这种利用Pho ...
- C 符号表导出
编译符号表导出示例: 使用GCC编译链接参数--version-script 控制动态符号表,如想 使用链接参数 --retain-symbols-file 控制静态符号表,--version-scr ...
- 【POJ 2965】 The Pilots Brothers' refrigerator
[题目链接] http://poj.org/problem?id=2965 [算法] 位运算 [代码] #include <algorithm> #include <bitset&g ...
- bzoj2427 [HAOI2010]软件安装——缩点+树形DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2427 今天的考试题...好不容易一次写对了树形DP,却没发现有环的情况... 发现自己 ta ...
- IDEA Spark Streaming Flume数据源 --解决无法转化为实际输入数据,及中文乱码(Scala)
需要三步: 1.shell:往 1234 端口写数据 nc localhost 1234 2.shell: 启动flume服务 cd /usr/local2/flume/bin ./flume-ng ...
- 为什么要使用XHTML?
XHTML 是什么? XHTML 指可扩展超文本标签语言(EXtensible HyperText Markup Language). XHTML 的目标是取代 HTML. XHTML 与 HTML ...