SQL 2008数据仓库可扩展性
2008-09-28 10:06:42 来源:WEB开发网分区表并行
你希望从你的硬件设备中获得最大的性能吗?SQL Server2008中的分区表并行(partitioned table parallelism, PTP)功能可以帮助你实现这个愿望。数据仓库应用程序经常需要从事实数据表中收集大量的历史数据,这些数据通常是按照日期来进行分区的。在SQL Server2005中,对不同分区中的查询使用不同的线程,这样有时会影响包含分区表的查询的性能,尤其是在配置了多核处理器的并行共享存储多处理机(shared memory multiprocessor, SMP)计算机中。分区表并行可以更好的利用现有硬件设备的处理能力,无论一个查询涉及到多少个分区,都可以提升针对分区表的并行查询性能。 该功能默认执行,不需要手动调整或配置。下图显示了在一个典型数据仓库场景中分区表并行的影响。
假设一个事实数据表中的销售数据按照销售日期位于四个分区中,每个分区都包含七天的数据,如图表的上部分所显示。查询Q 是过去七天的销售总和。这个查询根据其执行的时间不同,可能会作用于不同的分区。如查询Q1所示,它涉及一个单独的分区P2,而Q2则涉及两个分区,因为相关的数据在执行时跨过了P3和P4。
在SQL Server2005中执行Q1和Q2可能会产生一些意外的状态,这是因为针对单独分区的查询,系统可以分配所有的线程,因此Q1查询将由所有可用线程围绕P2进行并行处理(执行没有在图中显示)。但是在Q2情况下,即使底层硬件还有额外的可用线程,执行器也只为分区P3和P4各自分配一个单独的线程。因此在8路计算机上,Q2只利用了CPU可用资源的2/8(25%),而且很可能比Q1执行得要慢很多。
在SQL Server2008中执行Q1和Q2会更好地利用可用硬件,因此具有更好的性能和可预测性更强的动作。在Q1情况下,执行器依然可以将所有可用的线程用于处理P2中的数据(没有显示)。而在Q2情况下,则会生成一个并行计划,执行器按计划轮流指派所有可用线程到P3和P4,它产生的效果如图中New Allocation所示。这时CPU仍然被完全利用,而Q1和Q2的性能则相差无几。在这种全新的线程轮流指派方式下,处理器的核心越多,分区表并行所能提升的性能就越明显。当一个查询所访问的数据全部都在主内存缓冲池中——对于最近使用的分区来说这是种典型情况,我们在对涉及两个分区的查询所进行的内部测试中,速度提升幅度超过了16倍。注意,实际结果将取决于查询、数据组织和硬件配置。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接