本博文章除在标题明确注明 [转载] 外,均为作者原创!若无特别注明,本博所有原创文章均为IT168首发!任何个人/团队/公司在未经作者同意下不得擅自转载! 如果您对SQL Server有任何问题,请直接至微软中文技术论坛SQL Server 板块(http://forums.microsoft.com/china/ShowForum.aspx?ForumID=1713&SiteID=15)查看您想获得的各种资讯。

SQL Server 2008网络广播FAQ

上一篇 / 下一篇  2008-11-17 12:04:46 / 个人分类:SQL Server 2008

TechNet上的SQL Server 2008也在上周结束了,因此TechNet和MSDN上两个关于SQL Server 2008的系列网络广播都已经发布了。我总结了一下在两个系列中大家问得最多的问题,以供参考。

数据压缩的利弊。

数据压缩显而易见的好处在于可以显著减少数据表的尺寸。对于数据仓库或类数据仓库的数据应用来说,总是有一些拥有大量甚至海量记录的表。这些表往往占据了整个数据库90%以上的存储空间,因此如果能对这些表实施压缩,那么数据库的尺寸就可以压缩到原有尺寸的50%甚至更小。

现在流行的数据存储技术呢是多级存储,也就是利用高速存储设备来存储访问相当频繁的热数据,而利用中等效能的存储来存储一些较为频繁访问的近线数据,不太频繁访问的归档的数据存储在廉价低速的存储中。在这种存储设计中,热数据所消耗的存储成本相当昂贵,因此减少热数据的尺寸可以减少存储成本的投入。

怎样应用基于策略的管理

首先要理解SQL Server 2008基于策略管理的框架。基于策略的管理框架主要有:管理方面、条件、策略和管理目标组成。

策略有四种评估模式,其中的三种模式可以自动执行:

·        按需。当用户直接指定这种模式时,它可对策略进行评估。

·        更改时:禁止。这种自动模式使用DDL触发器来防止违反策略。

·        更改时:仅记录。当做出相关更改时,这种自动模式使用事件通知对策略进行评估。

·        按计划。这种自动模式使用SQL Server代理作业定期对策略进行评估。

一般我们可以通过四步创建策略:

·        选择一个基于策略的管理方面,其中包含要配置的属性。

·        定义一个条件,条件可以指定需要管理的方面的状态值。

·        定义一个策略,其中包含该条件、用于筛选目标集的附加条件以及评估模式。

·        检查SQL Server实例是否符合该策略。

SQL Server 2008在查询性能方面有什么改进?

筛选索引和统计信息,相对于以前版本中的全表索引和统计信息,筛选索引可以排除一些不需要的记录,例如值为空的记录,或者值在可选值中比重非常轻的值。设想一个数据场景,一个列中有110十种值,但是90%都是3,那么在以前版本中在该列上创建索引的话就会将索引的90%空间浪费在3这个值上,因为从索引中查找3和全表扫描3没有太大差别。筛选索引就可以很好地解决这个问题,在SQL Server 2008中我们可以仅对非3的值创建创建索引,这样该列上的索引就可以减少90%的尺寸,对索引扫描来说这是一个非常好的消息。

SQL Server 2008还增加了很多新的查询提示,例如FORCESEEK表提示,这个提示可以强制查询优化器生成基于某列查询的执行计划。

另外SQL Server 2008在锁粒度升级、位图筛选、分区表的并行查询处理上也都作了相当大的改进。

升级到SQL Server 2008需要注意哪些问题?

SQL Server 2008以前版本升级到SQL Server 2008通常都是非常简单的一项操作,SQL Server 2008的升级顾问可以在升级前执行实例和代码的分析,帮助用户了解早期版本的SQL Server实例有哪些组件配置和代码会在升级后造成问题。

SQL Server 2008提供了升级和迁移两种策略,直接升级可以由SQL Server 2008安装程序执行,而迁移可以由数据库文件卸载/挂载,数据库复制向导等多种手段完成。

升级到SQL Server 2008后,用户还需要执行一系列的操作。最为常见的操作包括重新填充全文索引目录和重新评估并修改计划指南。

重新评估和修改计划指南的原因是由于在SQL Server 2008中如果不能遵守计划指南,则查询将使用不同的计划进行编译,并且不会返回错误,而在SQL Server 2005中将引发错误并导致查询失败。升级到SQL Server 2008之后,在SQL Server 2005中创建的计划指南可能无效。无效的计划指南不会导致应用程序失败,但不会使用该计划指南。

分区表的查询在SQL Server 2008中什么改进?

SQL Server 2008中,已分区表的内部表示形式已发生变化,已分区表将作为一个多列索引呈现给查询处理器,其中PartitionID是第一列。PartitionID是一个隐藏的计算列,用于在内部表示当前行的分区ID

例如,假设一个定义为T(a, b, c)的表Ta列进行了分区,并在b列的聚集索引。在SQL Server 2008中,此分区表在内部被视为一个具有架构T(PartitionID, a, b, c)的未分区表,并具有组合键(PartitionID, b)的聚集索引。这样查询优化器便可以基于PartitionID对任何已分区表或索引执行查找操作。

“跳跃扫描”模式,在这种模式允许查询优化器基于某一条件来执行查找或扫描操作以确定要访问的分区,然后在该运算符内执行一个二级索引查找操作以返回这些分区中符合另一个不同条件的行。这种新的扫描模式更加有利于生成并行执行计划。

SQL Server 2008在执行计划中增加了一些新的元素来帮助数据库引擎可好的利用分区功能,包括

·        Partitioned属性,它表示将要执行的某个运算是针对一个已分区表的。运算包括SeekScanUpdateDelete等。

·        SeekPredicateNew元素,它带有SeekKeys子元素,其中包含PartitionID(作为第一个索引键列)和筛选条件(指定针对PartitionID的查找范围)。如果存在两个SeekKeys子元素,则表明对PartitionID使用了跳跃扫描操作。

·        用于提供所访问分区的总计的摘要信息。

最后SQL Server 2008还改进了分区表的并行查询策略,SQL Server 2008现在可以在多分区查询时为每个分区分配多个扫描线程,而在前一个版本中仅能分配一个。

SQL Server 2008的全文检索与SQL Server 2005及以前版本有什么区别?

SQL Server 2008中,全文引擎已完全集成到数据库引擎中。全文引擎现位于SQL Server进程中,而不是位于单独的进程(Msftesql.exe)中,同时全文索引现在存储在SQL Server中。通过将全文引擎集成到数据库引擎中,提高了全文可管理性和总体性能,并进一步优化了混合查询。

SQL Server 2008实现了并行安装全文引擎。对于每个SQL Server实例,都有一个专用的全文引擎实例,其中包括专用组件(例如断字符和筛选器)、资源(例如内存)和配置(例如实例级的服务级别设置)。

SQL Server 2008XML数据方面有什么样的改进?

XML功能是在SQL Server 2000SQL Server 2005中推出的,在SQL Server 2008中得到了增强。在SQL Server 2008中主要的与XML相关的改进包括:

·        改进了schema验证能力
eP*C z#LUYy S0KFG0
SQLServer2005中的XML Schema支持实现了一个通用的纯XML Schema规则子集,并覆盖了最常见的XML验证场景。SQLServer2008扩展了这个支持,使得它可以满足新的schema验证要求,包括支持lax验证,对dateTimetimedate验证的完全支持,同时还支持保存时区信息,改进了对unionlist类型的支持

·        增强了对XQuery的支持
jQ6y#g"|0如果大家还记得SQL Server 2005所支持的XQuery语法中的FLWOR,那么一定记得FLWOR表达式有forwhereletorder byreturn条件子句,但是SQL Server 2005支持其中的四种,分别是forwhereorder byreturn条件子句,也就是说不支持let赋值子句。现在SQL Server 2008增加了对let条件子句的支持,它可以用于在XQuery表达式中对变量进行赋值。

·        增强了XML数据操纵语言(DML)的插入功能
Y*tB/S;a\;x+Q3O:?0SQL Server 2008XML DMLinsert表达式中增加了对xml变量的支持。

SQL Server 2008针对商务智能平台有哪些改进?

首先我们要解释一下SQL Server 2008作为商务智能平台有哪些组成部分。SQL Server 2008作为商务智能平台由关系型数据库引擎、数据集成服务、分析服务报表服务构成,关系型数据库引擎用于支撑数据仓库,数据集成服务用于执行数据抽取、转换和加载,俗称ETL,分析服务用于构建多维数据集,并提供KPI、业务数据透视、翻译等等,最后是报表服务,用于提供基于Web的报表发布、访问和扩展能力。

SQL Server 2008在这四个组成部分都有非常大的改进。

数据库引擎服务就针对数据仓库提供了数据压缩、资源调控机制、优化的星型模式查询、改进的分区并行查询处理能力等一些列改进和创新。

数据集成服务则提供了新的查找缓存持久化,这一新转换任务模块可以减少查找任务对内存的压力,还有数据更新捕获,其实这一功能也算是关系型数据库引擎方面的一个改进,不过这个新功能主要是为了帮助用户可以更加简便地设计出跟踪数据更新的ETL应用,另外关系型数据库引擎中新的METGE语句可以简化ETL的逻辑,新的数据探查任务可以帮助用户分析数据质量,等等等等。

分析服务则在性能和可管理性方面做了很多改进,例如默认值计算逻辑的简化,这个特性也被称为Block Computation或叫做块计算,这个特性可以将许多MDX查询的执行速度提高数倍。对MOLAP分区的回写支持,可以提高需要回写多维数据集的应用性能,例如财务的预算计划应用。多维服务在SQL Server 2008中也开始学习SQL Server 2005DMV功能,提供了一些资源视图,利用这些资源视图,管理员就可以轻松了解多维服务器实例中正在发生的事件,例如有哪些用户保持着连接等等。多维服务还在设计器方面做了改良,集成到设计器内部的最佳实践建议可以帮助用户更方便地设计出优良的多维数据库。

报表服务则集成了微软Dundas公司收购的报表控件,同时报表服务本身的Chart也进行了改进,例如对辅助标尺的支持、多图表类型的支持,但是可能在大家视线中出现的最频繁的报表服务新控件就是Tablix,这个新的数据控件糅合了原来的TableMatrix,使SQL Server 2008报表服务中支持的表格样式的到了很大的增强。另外报表服务在底层的很多改进也使报表服务更加稳定和高效,例如SQL Server 2008的报表服务可以独立于IIS进行部署。


TAG:

Hyperion ORACLE Timesten 引用 删除 sean_tim   /   2009-01-15 13:14:03
5
引用 删除 Guest   /   2008-11-28 14:57:19
1
引用 删除 Guest   /   2008-11-28 14:56:54
说的蛮深刻的,受到很好的启发教育。谢谢老师!
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar