您的位置:首页 > 数据库

sql server 分区表与数据仓库

2010-10-07 10:18 302 查看
对数据库性能优化的一点浅薄认识,希望能对您的决策有帮助。

分区表原来主要作用

在提高数据库I/O性能的层面上,目前的分区表已经开始运用到OLTP(数据库挖掘以及分析的层次),主要作用改善大中型表的访问以及处理性能,使表具有可伸缩性和可管理性。

例如当有多个CPU的SQL SERVER系统上,如果我们采用了分区表则每个CPU可以处理一个分区,这样的处理方式将改变数据库单线程的处理模式,将多CPU的资源充分利用,并将处理过程以多点多线程的方式进行,在SQL SERVER 处理数据表模式上是一种突破,并提高了CPU的利用率。

另外一点是OLTP,目前OLTP在起步初始可能考虑分区表的可能有几点

1 未来数据库量加大,SSAS处理大量数据库会力不从心,通过分区表来将 CPU I/O 等压力均衡,能处理更多的数据,并降低硬件带来的瓶颈。

2 数据仓库的需要,当在数据库挖掘时,数据量小则有无分区表没有差别,当数据库逐渐加大则在数据库仓库的优越性将体现,例如我们可以将以年为单位的数据仓库中的某

些大表进行文件, 横向的切割,在数据库移动保存方面是有一定优越性,同时在进行SELECT时优越性更加突出,原因有以下几点

1 SELECT $partition.分区函数(分区关键字段)AS Punmber,其他字段

From 表名

GROUP BY $partition.分区函数(分区关键字段名)

GROUP BY [Punmber]

这样做我们就可以优化查询,将查询的结果先确定在某一个分区中,第一次减小了我们查询的范围,加快了查询的速度。

2 数据仓库2次划分

在数据库仓库的建立中,可以一次性将数据库导入到一个库并累加,另一种方法是 2次数据仓库(对数据仓库分区得意义在于某些数据并不保证不经常查询)

在数据库可能还在数据仓库中查询的可能中,我们可以做的是



3 另外在数据库分区中,分区函数可以重复使用,文件分组可以重复使用, 例如我们有两个表,里面都包含同样的关键字段,而且关键字段都是分区函数的关键字段

那结果是当我们对两个表(如果需要进行关联查询),结果是返回的结果会直接利用分区表,不需要索引从新对其,两个表的每个分区的数据库将自动对其。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: