SQLSERVER2005分区表几何倍数提高网站性能计算机等级考试

文章作者 100test 发表时间 2009:07:25 09:56:58
来源 100Test.Com百考试题网


  编辑特别推荐:

  全国计算机等级考试(等考)指定教材

  全国计算机等级考试学习视频

  全国计算机等级考试网上辅导招生

  全国计算机等级考试时间及科目预告

  百考试题教育全国计算机等级考试在线测试平台

  全国计算机等级考试资料下载

  全国计算机等级考试论坛

  项目做到后期了,发现数据到数据在不断增长,现在是1000w多条,估计以后数据还会增加,可是现在数据库到索引也加了,在数据库做一个大大查询时,前台web会超时,很郁闷,怎么办呢,第一个想法是分库,可是分库这个表关联的太多了,并且这个表又是一对多中多大一方,不好处理,在google上工作了一天,终于让我发现了sql2005的新特性 :表分区功能
  表分区功能,相当于把一张表大数据无限极细化到多张表上,多个驱动上,但是访问时却还是一样的访问,因为 其实本身并未新建任何表,并且它还可以访问其他服务器以提高速度
  好了,废话不谈了,下面的步骤 依次跟着来:
  1.为数据库新建多个文件组,可分布于不同大磁盘上
  ALTER DATABASE [D] 
  ADD FILEGROUP [GF1]
  2.一个文件组可放置多个文件,下面,只为一个文件组分配一个文件
  ALTER DATABASE [D] ADD FILE ( NAME = NGF1, FILENAME = NE:\D\D1\DGF1.ndf , SIZE = 5MB , FILEGROWTH = 10% )
  TO FILEGROUP [GF1]
  3.创建分区函数
  CREATE PARTITION FUNCTION [D_PARTITIONFUNC] (int) 
  AS RANGE LEFT FOR VALUES (200000,400000,500000)
  4.将分区函数绑定到分区架构上
  CREATE PARTITION SCHEME [D_PARTITION_SHEME]
  AS PARTITION [D_PARTITIONFUNC]
  TO ([PRIMARY],[GF1],[PRIMARY],[GF1])
  注意primary表示主文件组,既是数据库建立大时候默认的
  5.删除主键
  ALTER TABLE dbo.B DROP CONSTRAINT [PK_B]
  上一步可以不做,不过我个人推荐,因为分区键(分区函数的参数)必须建立在主键上
  6.开始对表分区
  ALTER TABLE  dbo.B add CONSTRAINT [PK_B] PRIMARY KEY CLUSTERED (ID)
  ON [D_PARTITION_SHEME](ID)
  OK,完成
  B表中主键ID,好了
  现在即使是几百G的数据也不会有问题了
  下面还有更改分区的方法以及查询分区分布大方法,现在没时间写了,下次再补上吧。

相关文章


Sql的leftjoin命令详解计算机等级考试
SQLServer中使用参数化Top语句计算机等级考试
SQL存储时触发不能使用USE怎么办计算机等级考试
SQLSERVER2005中的约束计算机等级考试
SQLSERVER2005分区表几何倍数提高网站性能计算机等级考试
SQLServer2005的新特性:表分区功能计算机等级考试
SqlServer实用操作小技巧集合计算机等级考试
计算机三级的四个类别看看你适合哪个?计算机等级考试
批量删除Word文档中软回车符号计算机等级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛