分区表:
分区表的目的是将同一张表中的数据分布在多个物理位置,提高访问的性能。分区的物理位置为多个文件组。
可使用分区表来存储销售订单,然后根据订单日期将订单记录分布到不同文件组中。
此技术使用户可以控制不同种类订单的物理存储,同时仍在一个表中对这些订单进行维护。
利用分区表改善可管理性的好处:
• 能够实现单独的备份策略。不同的数据集可能有不同的备份要求;
• 可控制存储介质。对表进行分区可使你根据数据的存取要求为数据选择相应的存储;
• 实现索引管理。除了分区表外,还可分区索引。
分区索引:
与分区表类似,根据值范围将索引进行水平分区。
对索引进行分区与表进行分区,都是为了提高性能。
分区视图:
横向联接跨一个或多个服务器的一组成员表中的已分区数据 , 使这些数据表好像来自一个表。
如果分区视图不可更新,则它只能作为原始表的只读副本。可更新的分区视图可提供原始表的所有功能。当视图是一组 SELECT 语句,这些语句各自的结果集使用 UNION ALL 语句合并在一起时,该视图被视为可更新的分区视图。
分区视图的类型:
SQL SERVER 2005 区分本地分区视图和分布式分区视图。在本地分区视图中,所有参与表和该视图都位于同一个 SQL SERVER 实例中。对数据进行本地分区的首选方法是使用分区表。
在分布式分区视图中,至少有一个参与表位于其他区(远程)服务器上。
使用分区视图提升性能:
如果分区视图中的表位于不同的服务器上,或者位于一台多处理器的计算机上,则可对查询中所涉及的每个表进行并行扫描,从而提高查询性能。
注意:
不能对分区视图创建索引。
哪三种操作可以用来管理分区?每个操作的目的是什么?
答案:
SPLIT 为一个分区函数引入一个新的边界点;
MERGE 从一个分区函数中删除一个边界点;
SWITCH 在两个表之间交换分区。
操作步骤 :
(1) 分区函数是数据库中的一个独立对象。定义数据分区的边界点。创建分区函数是对一个表、索引或索引视图进行分区的第一步。
分区函数指定用于分区数据的键的数据类型以及每个分区的边界值。分区函数定义的分区数总比该函数定义的边界值大 1 。
举例:定义 datatime 分区键以及边界值“ 01/01/2005” 、“ 01/01/2006” 和“ 01/01/2007” 的分区函数 4 个分区:
创建分区函数:
CREATE PARTITION FUNCTION pf_OrderDate (datetime)
AS RANGE RIGHT
FOR VALUES ('01/01/2005', '01/01/2006', 01/01/2007')
(2) 对一个表、索引或索引视图进行分区的第二步是创建一个分区方案。
分区方案将在分区函数中定义的分区映射到将物理存储这些分区的文件组。
可将所有的分区映射到同一个文件组,也可将部分或全部分区映射到不同的文件组,根据具体需要定。
创建分区方案时,可以设置一个可选项,用于指定当分区函数中添加了一个分区时可使用的文件组,称为 “ 下一个 ” 文件组。
CREATE PARTITION SCHEME ps_OrderDate
AS PARTITION pf_OrderDate
TO (fg1, fg2, fg3, fg4, fg5)
CREATE PARTITION SCHEME ps_OrderDate
AS PARTITION pf_OrderDate
ALL TO ([PRIMARY])