这篇文章中介绍的SQL Server 2008 关系数据库引擎(Database Engine)增强,包含所有的CTP中的累计更新,基本会与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微调查询计划。
- 空间数据的支持,存储,查询,索引等。微软2007年加入了OGC(Open Geospatial Consortium)。
- 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中依旧支持,但在将来的版本中会消失。在性能计数器或跟踪中,这部分功能会明确标出废弃,具体的功能列表会在随后的文章中介绍。
从2005开始,SQL Server不仅仅是一个数据库软件,而是往企业数据库平台的方向发展,在ETL,OLAP,Data Mining,Reporting,Application Server等方向都有大量的新组件,新特性和增强。SQL Server 2008在这一方向上更进一步,随后的文章中将会介绍SQL Server 2008在关系数据引擎之外的增强。