SQL 2008数据仓库可扩展性
2008-09-28 10:06:42 来源:WEB开发网星型关联
如果采用维度化对数据仓库进行模型化,那么你的主要工作将集中在星型关联查询中。这些查询都遵循一个通用的模型,即事实数据表(fact table)同一个或多个维度表(dimension table)进行联接。另外星型查询通常依靠维度表的非键列来实现筛选条件并在事实数据表的某一列(称之为measure列)中执行聚合(例如SUM)。对于行的碎片处理,很多种星型查询的性能在SQL Server2008中都得到了显著提升。
新技术依靠bitmap filter功能,即Bloom filters (参考Wikipedia 2007 ,Bloom filter, http://en.wikipedia.org/wiki/Bloom_filter),它可以让SQL Server 在查询赋值过程中,针对后续处理及早的排除不符合条件的行。同其它产品所使用的查询处理技术相比,这样可以大量节约CPU 使用时间。据我们观察,在使用新的星型查询时,整个关系型数据仓库的性能会提高15-25%。一些个别查询速度甚至能够比以前快7倍以上。
新的星型联接使用一系列的哈希联接,为所涉及的每一个维度表构建一个哈希表。构建哈希表会产生一些额外信息,名叫bitmap filter, Bitmap filter 即图1中标记为“Join Reduction Info.”的方框,对于那些在联接过程中将被排除的行,这些筛选器会在扫描事实数据表时先将它们几乎全部排除掉。如此一来CPU 就不需要花时间来复制将会被排除掉的行,也不需要在哈希表中去检测它们,从而节约了时间。上图中显示了在对事实数据表扫描时的筛选效果。SQL Server2008的查询执行器同样会在执行过程中对bitmap 进行重新排序,将最有可能被选中的放在首位,从而进一步节省了CPU 的时间,这是因为一旦bitmap对事实数据表的行检查失败,那么该行将被跳过。
新的星型查询优化技术只在Microsoft SQL Server2008 企业版中提供。当可以降低查询消耗时,SQLServer 会自动按照星型联接模型对查询进行优化,你不需要对应用程序做任何修改就可以体验到性能的显著提升。
- ››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表' (数...
更多精彩
赞助商链接