这里介绍的是大数据量的维护日志的分区解决方案:

每个月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大数据的分区方案的更多相关文章

  1. (整理)SQLServer 大数据的插入与查询

    最近几天一直在折腾大数据量的查询,最后在索引.分页存储过程和控件以及视图的帮助下,搞定了.这篇文章记录解决问题时候查看的网友的分享链接,以及大数据量数据的插入链接. DatagridView Virt ...

  2. AppBoxFuture: 大数据表分区的3种策略

      之前的文章"分而治之"在介绍大表分区时,作者尚未实现不同的分区策略,即只能按指定的分区键进行分区.这次作者完善了一下分区策略,在规划大表分区时可以按Hash或者时间范围进行分区 ...

  3. 智慧文旅IOC大数据可视化建设方案

    一.建设背景 自2020年以来,疫情对各行各业的都造成了不同程度的影响,对依赖人口消费实现商业价值的文旅行业更是受到了更大的冲击,因此在疫情当下以及科技发达的今天,如何利用科技的手段赋能文旅行业进行数 ...

  4. Sqlserver大数据量分区表创建

    /* 逆向删除对象 DROP PARTITION SCHEME [PS_BasicPolicy2014]; DROP PARTITION FUNCTION [PF_BasicPolicy2014]; ...

  5. 案例分析:大数据平台技术方案及案例(ppt)

    大数据平台是为了计算,现今社会所产生的越来越大的数据量,以存储.运算.展现作为目的的平台.大数据技术是指从各种各样类型的数据中,快速获得有价值信息的能力.适用于大数据的技术,包括大规模并行处理(MPP ...

  6. SQLServer大数据优化方法若干

    1.使用ndf文件. 自从sqlserver2005后,默认不增生成ndf文件. mdf:priMary Data file ldf:Log Data File ndf:secoNdary data ...

  7. 【数据处理】SQL Server高效大数据量存储方案SqlBulkCopy

    要求将Excel数据,大批量的导入到数据库中,尽量少的访问数据库,高性能的对数据库进行存储. 一个比较好的解决方案,就是采用SqlBulkCopy来处理存储数据. SqlBulkCopy存储大批量的数 ...

  8. 大数据Excel导出方案

    static void Main(string[] args) { Excel.Application app = new Excel.Application(); Excel._Workbook r ...

  9. sqlserver 大数据量的insert、delete操作优化

    http://blog.csdn.net/lanyuzhen/article/details/7547476 --大批量导出orders表:insert DBCC DROPCLEANBUFFERS   ...

随机推荐

  1. css高级:flash嵌入

    1,由flash创建的object/embed标签的标准集.缺点:他们与各种无效属性和元素在一起被加载,破坏文档对web标准的依从性, 因为embed是人生w3c规范没有的专有元素. 2,迂回解决方案 ...

  2. centos上装eclipse步骤

    1.去官网下个eclipse for linux的  地址:http://www.eclipse.org/downloads/    Eclipse IDE for Java EE Developer ...

  3. java调用restful接口的方法

    Restful接口的调用,前端一般使用ajax调用,后端可以使用的方法如下: 1.HttpURLConnection实现 2.HttpClient实现 3.Spring的RestTemplate

  4. HDU3487 Play with Chain splay 区间反转

    HDU3487 splay最核心的功能是将平衡树中的节点旋转到他的某个祖先的位置,并且维持平衡树的性质不变. 两个操作(数组实现) cut l,r, c把[l,r]剪下来放到剩下序列中第c个后面的位置 ...

  5. 洛谷 P1083 [ NOIP 2012 ] 借教室 —— 线段树 / 二分差分数组

    题目:https://www.luogu.org/problemnew/show/P1083 当初不会线段树的时候做这道题...对差分什么不太熟练,一直没A,放在那儿不管... 现在去看,线段树就直接 ...

  6. poj1988Cute Stacking

    题目大意:有几个stack,初始里面有一个cube.支持两种操作:1.move x y: 将x所在的stack移动到y所在stack的顶部.2.count x:数在x所在stack中,在x之下的cub ...

  7. [Swift通天遁地]九、拔剑吧-(12)创建Preview-Transition图像预览界面

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  8. 前端性能优化---减少http请求数量和减少请求资源的大小

    减少http请求数量:就是资源的合并 减少http请求大小:就是资源的压缩   一.资源合并的原理:   资源不合并的缺点: 1.文件和文件之间有插入请求----请求a.js,b.js,c.js(三行 ...

  9. [转]linux下logrotate 配置和理解

    转自:http://blog.csdn.net/cjwid/article/details/1690101 对于Linux 的系统安全来说,日志文件是极其重要的工具.系统管理员可以使用logrotat ...

  10. 消息队列 (2) java实现简单的RabbtMQ

    假设有如下问题: 1.如果消费者连接中断,这期间我们应该怎么办? 2.如何做到负载均衡? 3.如何有效的将数据发送到相关的接收者?就是怎么样过滤 4.如何保证消费者收到完整正确的数据 5.如何让优先级 ...