在SQL Server 2008中,关系数据库引擎的新增功能相对较多,本文将主要针对应用开发人员和数据库管理员比较关心的新增特性进行详细的说明。
与开发人员相关的新增特性:
Change Data Capture (CDC): 变化数据捕获,可以捕获SQL Server数据表中的新增、修改和更新,并以一种易于使用的格式提供。CDC是SQL Server 2008中新增的一项非常重要的功能,在BI应用中从业务数据库抽取更新数据到数据仓库时非常有用。随后会有专文介绍CDC。
DDL Triggers and Event Notifications: 除了SQL Server 2005中的DDL语句外,SQL Server 2008可以为某些行为等同于DDL的存储过程增加触发器。
Merge: T-SQL中新增的Merge语句支持批量数据的新增/更新/删除,通过两个表类型数据的Join,按照Join的不同情况对目标表按源表的数据作增删改操作。
Table-Valued Parameters: 存储过程和函数中新增表值参数类型的支持,可以将多行数据放在一个参数中传递到存储过程和函数中。
Group By 增强: Group by中新增了Rollup,Cube和Grouping Sets子句,用于分组后的数据统计。
Insert 增强: 支持一条Insert语句中插入多条数据。
Table Hints 增强:新增了Force Seek,强制查询优化器仅使用Index Seek。
hierarchyid Data Type:新增的hierarchyid数据类型用于层次化数据的支持,SQL Server 2008在hierarchyid类型上提供了层次化数据处理的一些基本功能。
FILESTREAM存储,允许SQL Server将非结构化数据存储在文件系统上。
Plan Guide增强。可以通过Hints微调查询计划。
SSMS加入IntelliSense支持。
SSMS中打开表时,返回Top N的功能又回来了。
Filtered Indexes and Statistics,支持在表的一部分数据上建立索引和统计,而不是在全部数据上。
全文索引紧密集成到了关系数据库引擎中,而不是像SQL Server 2005那样由另外的进程提供。
与数据库管理员(DBA)相关的新增特性:
Dynamic Management Views (DMVs): 动态管理视图中新增了内存、依赖项方面的多个视图。
Data Collector:可以从不同的数据源进行数据收集
Backup 压缩:仅有EntERPrise以上版本支持备份压缩,所有版本都支持从压缩过的备份恢复。
Declarative Management Framework支持对Server Group进行管理,这是通过Configuration Servers实现的。具体应用的时候,可以支持T-SQL同时在N台Server上同时执行
运行时添加CPU。这个功能可以在硬件升级时保持可用。
表分区交换功能。大型的数据仓库非常有用,SQL Server 2008中通过对Alter Table语实扩展,提供了更为方便的表分区交换调用。
资源管理,CPU和内存等资源的管理。
管理方面新增Extensible Key Management和透明数据加密。
服务器管理和维护方面的大幅增强。
PowerShell Provider and Cmdlets,方便在PowerShell中对SQL Server 2008进行管理。
另外一些系统功能的增强,但不需要显式来使用的特性有:
Optimized Bitmap Filter: Oracle有显式的Bitmap类型索引,SQL Server则在并行查询计划中动态的使用Bitmap过滤,在星型架构(Star Schema)下可大幅提高事实表中无效的记录。
Database Mirror:增强了日志性能,增加了自动从Partner修复错误的数据页的功能。
增强了分区表查询时的性能。
稀疏数据存储优化。
增强之外,也有一些功能逐步移除或替代了,虽然在SQL Server 2008中依旧支持,但在将来的版本中将会逐渐消失。在性能计数器或跟踪中,这部分功能会明确的标出废弃。