近期对公司产品的日志数据库做了一个数据分区,数据库使用的是sql server 2008,这里给大家提供一个參考。

须要特别说明的是,非常多网上的样例分区字段都使用的是时间类型的。而这里因为时间字段原来设计数据库使用的是字符串类型的。所以这里的分区字段使用的是字符串类型的。进过我的測试。也能成功。

1:建立分区组:建立了十个分区组

  1. go
  2. alter database M2
  3. add filegroup [FG1];
  4. go
  5. alter database M2
  6. add filegroup [FG2];
  7. go
  8. alter database M2
  9. add filegroup [FG3];
  10. go
  11. alter database M2
  12. add filegroup [FG4];
  13. go
  14. alter database M2
  15. add filegroup [FG5];
  16. go
  17. alter database M2
  18. add filegroup [FG6];
  19. go
  20. alter database M2
  21. add filegroup [FG7];
  22. go
  23. alter database M2
  24. add filegroup [FG8];
  25. go
  26. alter database M2
  27. add filegroup [FG9];
  28.  
  29. go

2:为分区组指定分区文件。我把分区文件放到不同的盘符以下。这样读取文件就会更快。可以并行的读取文件。

这个也是分区可以提高效率的原理。

  1. alter database M2
  2. addfile(name=FG1_data,filename='c:\esafenet\FG1_data.ndf',size=10MB) tofilegroup[FG1];
  3. alter database M2
  4. addfile(name=FG2_data,filename='c:\esafenet\FG2_data.ndf',size=10MB) tofilegroup[FG2];
  5. alter database M2
  6. addfile(name=FG3_data,filename='d:\esafenet\FG3_data.ndf',size=10MB) tofilegroup[FG3];
  7. alter database M2
  8. addfile(name=FG4_data,filename='d:\esafenet\FG4_data.ndf',size=10MB) tofilegroup[FG4];
  9. alter database M2
  10. addfile(name=FG5_data,filename='e:\esafenet\FG5_data.ndf',size=10MB) tofilegroup[FG5];
  11. alter database M2
  12. addfile(name=FG6_data,filename='d:\esafenet\FG6_data.ndf',size=10MB) tofilegroup[FG6];
  13. alter database M2
  14. addfile(name=FG7_data,filename='f:\esafenet\FG7_data.ndf',size=10MB) tofilegroup[FG7];
  15. alter database M2
  16. addfile(name=FG8_data,filename='f:\esafenet\FG8_data.ndf',size=10MB) tofilegroup[FG8];
  17. alter database M2
  18. addfile(name=FG9_data,filename='c:\esafenet\FG9_data.ndf',size=10MB) tofilegroup[FG9];
  19. go

3:建立分区函数。这个须要和分区组表匹配

  1. Create partitionfunction
  2. Part_mediasec_func(nvarchar(30))as
  3. range left
  4. for values('2013123123:59:59',
  5. '20141231 23:59:59',
  6. '20151231 23:59:59',
  7. '20161231 23:59:59',
  8. '20171231 23:59:59',
  9. '20181231 23:59:59',
  10. '20191231 23:59:59',
  11. '20201231 23:59:59',
  12. '20211231 23:59:59');
  13. go

3:建立分区结构,将分区函数和分区组相应起来

  1. Create partitionscheme Part_mediasec_scheme
  2. as partitionPart_mediasec_func
  3. to([FG1],[FG2],[FG3],[FG4],[FG5],[FG6],[FG7],[FG8],[FG9],[Primary]);
  4. go

4:建立分区索引

  1. EXEC sp_helpindexN'SecureUsbLog' --查看原来索引
  2. alter tableSecureUsbLog drop constraint PK__SecureUs__7839F64D1F98B2C1
  3. go
  4. create clusteredindex SecureUsbLog_index
  5. onSecureUsbLog(logTime)
  6. onPart_mediasec_scheme(logTime);
  7. Go

这次分区的特点有两个:

1:对已经使用的数据库进行分区,网上大多数样例是新建的分区和数据库。

2:对字符串类型日期进行分区。

这两点还是非常有參考价值的。

sql server2008对字符串日期字段分区的更多相关文章

  1. sql server日期字段值的比较

    sql server中对日期字段值的比较 sql server中对日期字段的比较方式有多种,介绍几种常用的方式:用northwind库中的employees表作为用例表.1.between...and ...

  2. sql server2008 字段类型

    bit    整型 bit数据类型是整型,其值只能是0.1或空值.这种数据类型用于存储只有两种可能值的数据,如Yes 或No.True 或False .On 或Off. 注意:很省空间的一种数据类型, ...

  3. 转: sql server2008 字段类型详解

    bit 整型 bit数据类型是整型,其值只能是0.1或空值.这种数据类型用于存储只有两种可能值的数据,如Yes 或No.True 或False .On 或Off. 注意:很省空间的一种数据类型,如果能 ...

  4. SQL Server 日期字段作为查询标志字段的注意事项

    今天在做一个数据抽取程序时遇到一个问题困扰好久才解决,这不是技术问题,而是常识和细心的问题.写出来让大家引起重视一下. 由于之前的程序长期用Oracle,并且数据标志字段采用的日期类型.在Oracle ...

  5. 常用SQL时间格式SQLServer中文版的默认的日期字段datetime格式是yyyy-mm-d

    常用SQL时间格式 SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm 例如: select getdate() -- ::08.177 ...

  6. 【网络收集】Sql Server datetime 常用日期格式转换

    ) , sfrq, ) 我们经常出于某种目的需要使用各种各样的日期格式,当然我们可以使用字符串操作来构造各种日期格式,但是有现成的函数为什么不用呢? SQL Server中文版的默认的日期字段date ...

  7. 如何使用 t-sql 更新数据库中日期字段的部分数据(年?月?日?时?分?秒?)

    嗯,从网上找到了一些内容,综合利用了sql server的一些内置方法 首先是 convert 方法:https://msdn.microsoft.com/zh-cn/library/ms187928 ...

  8. sql server中的日期详解使用(convert)

    转自:http://blog.csdn.net/hehe520347/article/details/48496853 有个字段值例如2012-07-02 00:00:00.000 转化成 2012- ...

  9. [转载]SQL语句中的日期计算

    1. 本月的第一天SELECT  DATEADD(mm,  DATEDIFF(mm,0,getdate()),  0) 2. 本月的最后一天SELECT  dateadd(ms,-3,DATEADD( ...

随机推荐

  1. 公布项目到NPM

    修己安人,内圣外王 近期,在开发Node项目过程中遇到了须要类jQuery深拷贝对象的问题.去Github找了半天,并没有符合的,于是,自己决定写一个(mixin.js),然后推送到NPM(查看Npm ...

  2. 项目记录22-- tolua基于lua框架事件派发

     每天晚上抽点时间写一点点就一点点,曾经不写博客可是如今.不为别的仅仅是为了告诉别人我还存在.         这几天在地铁上发现好多人都还在玩消除游戏,今天起码看到5个人,可是玩的版本号都不一样.看 ...

  3. jquery中命名冲突问题

    例如用jq代替$符号 var jq = $.noConflict()

  4. java类List及List遍历器的代码

    从某个程序中截取的一个示例代码: List<User> users = userDao.selectAll(); //mybatis java orm Iterator<User&g ...

  5. Qt-窗口部件概念介绍

    前言:包括基础窗口部件QWidget.对话框QDialog.QFrame类族 .按钮部件.行编辑器.数值设定框以及滑块部件. 一.基础窗口部件QWidget 窗口部件(Widget)是Qt中建立用户界 ...

  6. struts2学习之基础笔记7

    第十二章 Struts 2的标记库 1 OGNL简介 Object-Grephic Navigtor Language 图对象导航语言 作用:图对象导航语言是Struts 2标记库中为其相应标记属性进 ...

  7. 算法 之 aabb

    题目描述:输出所有形如aabb的4位完全平方数(即前两位数字相等,后两位数字也相等). 分支和循环结合在一起时功能强大: 下面列举所有可能的结果aabb,然后判断它们是否为完全平方数.注意a的范围是1 ...

  8. Unity 三维软件单位导入资源单位比例

    三维软件 内部米制尺寸/m 默认设置导入unity中的尺寸/m 与unity单位比例 Maya 1 100 1:100 3DS MAX 1 0.01 100:1 Cinema 4D 1 100 1:1 ...

  9. Nginx虚拟主机以及自动启动脚本详解

    想要部署Nginx虚拟主机,那么首先需要nginx的环境,那么我们一起来看一下吧systemctl stop firewalldiptables -Fsetenforce 01)安装支持软件yum - ...

  10. 实验楼—Mysql—查找最爱学的课程

    转载:https://www.shiyanlou.com/challenges/2651 背景 从上节题目构建的课程数据库中提取每个用户最爱学的课程数据. 右边桌面是实验楼的服务器,服务器中的 MyS ...