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

每个月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. 浅析C++多重继承

    继承是面向对象的三大特征之中的一个. 可是对于继承的实现和使用方式,各种不同的面向对象语言有各自的观点.有些语言支持多重继承.而有些语言则仅仅支持单一继承. 多重继承的确引入了较大的复杂度.那么.在不 ...

  2. 对Socket CAN的理解(4)——【Socket CAN接收数据流程】

    转载请注明出处:http://blog.csdn.net/Righthek 谢谢! 如今我们来分析一下CAN总线的接收数据流程,对于网络设备.数据接收大体上採用中断+NAPI机制进行数据的接收.相同. ...

  3. BestCoder Round #60/HDU 5505 暴力数学

    GT and numbers 问题描述 给出两个数NN和MM. NN每次可以乘上一个自己的因数变成新的NN. 求最初的NN到MM至少需要几步. 如果永远也到不了输出-1−1. 输入描述 第一行读入一个 ...

  4. 360p以上

    请选择200MB以内,360p以上,时长3秒到300秒的文件.(支持格式:mp4.3gp.avi.mov.m4v.mkv文件)

  5. 使用VS2005安装和编译QT4.53源码

    学习Qt,当然是QT4好.可是装了4.86以后,网上下载的书中的例子大多无法直接用VS执行(个人不喜欢用QT Creator),即打开pro转换的时候出错(我也懒的研究为什么出错了).看了一下发布时间 ...

  6. Spark 机器学习 ---CountVectorizer

    文本特征提取->> CountVectorizer:基于词频数的文档向量 package Spark_MLlib import org.apache.spark.ml.feature.Co ...

  7. Android点9图的运用

    在Android UI设计开发中,我们经常会用到一些图标.图片来做背景等. 相信很多同学都会遇到一个问题,就是我们让美工做好一张图,一个图标,呃,看起来挺好看的,但是放进app中,扩大或缩小.在不同分 ...

  8. Django总结四

    0.ORM操作 1.必会的13条 返回对象列表的 all filter exclude order_by reverse distinct 特殊的对象列表 values values_list 返回对 ...

  9. ORA-01012:not logged on的解决办法

    conn / as sysdba 报错ORA-01012: not logged on 发生原因:关闭数据库是shutdown 后面没有接关闭参数中的任何一个. nomal ————- —-所有连接都 ...

  10. 【BZOJ2565】最长双回文串 (Manacher算法)

    题目: BZOJ2565 分析: 首先看到回文串,肯定能想到Manacher算法.下文中字符串\(s\)是输入的字符串\(str\)在Manacher算法中添加了字符'#'后的字符串 (构造方式如下) ...