哪个策略更好?
分区可以通过使用这两个策略之一或者将两个策略有效的结合到一起来实现。关于策略 I 和 策略 II可以参考下面的表格,其中解释了这两个策略对影响关系型数据仓库分区因素的作用。
|
|
策略 I |
策略 II |
|
数据导入 |
· 在SELECT/INTO SQL语句中不能明确的指定文件组。由于这一限制,在使用一个SELECT/INTO 语句时无法采用并行方式来完成初始转换 · 步进的数据导入不会被分区策略所影响 |
· 当所有的分区映射到同一个文件组时转换可以采用并行的方式完成 · 步进的数据导入不会被分区策略所影响 |
|
备份/还原 |
· 在文件组和分区之间创建一个一一对应的关系让在分区级别的零散备份和还原操作得以进行 · 在备份数据库之前确保分区被标记了只读状态。如果没有,当还原数据库时事务日志必须被前滚 |
· 如果所有的分区被映射到了同一个文件组,分区表作为一个整体可以使用单个的命令进行备份和还原 · 此策略在单个分区的粒度下不提供零散备份的灵活性 |
|
查询性能 |
· 如果文件组只包含一个文件,并且表会采用一个接一个的串行方式来进行填充,对这样的对象的扩展盘区的分配是连续的。这意味着SQL Server对于一个连续的扫描可以提供多达256 KB的 I/O (4个扩展盘区)速率 · 因为数据是连续的,因此对于大量的连续扫描可以提供更好的工作负荷 |
· 如果文件组是由多个文件组成的,SQL Server使用按比例填充机制,这样会导致扩展盘区出现碎片 · 类似的,在并行操作比如并行数据导入操作期间为对象/分区分配的扩展盘区无法保证是连续的 · 当为对象分配的扩展盘区不连续时,对于连续扫描SQL Server可以提供差不多64 KB的 I/O(1个扩展盘区)速率 · 因为数据分布在许多的物理磁盘上,因此它有助于在进行大量的并发随机I/O操作时提供更好的工作负荷性能 作为一个替换的方案,可以在启动SQL Server时加上-E开关。当在启动时指定了-E开关时,SQL Server可以分配4个而不是1个扩展盘区。因而-E开关让SQL Server可以提供多达256 KB 的I/O速率,即使存在因使用了按比例填充机制而产生的扩展盘区碎片 |
结论
本白皮书讨论了影响分区的因素,以及对于设计分区可使用的两个主要策略的正反两面的对比。这里所提供的信息可能会对通过分区更有效的管理你的关系型数据仓库有所帮助。
有关的更多信息,请访问:http://www.microsoft.com/sql/
本文档展示了SQL Server 2005的一些与关系型数据仓库分区的相关特殊的功能。需要更多的信息,请参阅:
◆SQL Server 2005联机丛书提供了一些关于这个主题的有价值的信息,并且它可以作为使用SQL Server 2005实现数据分区的一个不错的起点。
◆CLARiiON CX600 Web站点: http://www.emc.com/products/systems/clariion_cx246.jsp
附录 A: 性能数值
所有在这一部份展示的数值都是在我们使用SQL Server 2005的测试过程中得到的。该测试是在附录B,C以及D中记录的硬件平台上进行的。
批量插入性能
在我们的测试中,我们可以在SQL Server 2005中使用刚刚超过一个小时的时间导入25亿行。事实表的架构中包含了九个整型列,一个日期类型列,以及一个字符型列。
在这里展示的性能数值是在所有的线程以并行的方式执行并且分区架构基于策略I的环境下捕捉的。
|
# 并行线程 |
执行时间 (在所有的线程执行时) |
处理器使用率 (跨8个处理器) |
# 行插入 |
批量拷贝吞吐量/秒 |
批量拷贝行/秒 |
磁盘吞吐量 |
|
8 |
52 分钟 |
88 % |
2550835652 |
44.77 MB/秒 |
6,53,339 |
41.17 MB/秒 跨 8 个LUNs on CLARiiON |
在这里展示的性能数值是在所有的线程以并行的方式执行并且分区架构基于策略II的环境下捕捉的。
|
#并行线程 |
执行时间 (在所有的线程执行时) |
处理器使用率 (跨8个处理器) |
#行插入 |
批量拷贝吞吐量/秒 |
批量拷贝行/秒 |
磁盘吞吐量 |
|
8 |
52分钟 |
92.625% |
2,550,835,652 |
46.42 MB/秒 |
上一篇:比AcdSee功能还强大的图片处理、编辑软件,推荐下载! 下一篇:ASP上传漏洞防范 |
