SQL Server 2005引入了对SQL Server 查询的通知支持。你可以使用这一功能来发送一个命令到SQL Server,并且要求当其后运行的同样命令产生不同的结果时,SQL Server生成一个通知。这一功能是通过从属对象检测到基础数据的改变来实现的。可用通过多种客户端API将命令发送到服务器,如:ADO.NET, OLE DB, Open Database Connectivity (ODBC), Microsoft ActiveX Data Objects (ADO), 或 SOAP等,这些命令可能包含一个通知请求的tag。对于被作为请求一部分的被执行的每一条语句,服务器都会为请求中的每一条语句创建一个“通知订阅”。通知通过一个SQL Service Broker 队列传递,应用程序可以轮询,并且无论通知是否可用,都可以使用活动服务,或者阻碍语句的返回。 查询通知对于在那些数据库驱动Web 站点应用程序中启用结果缓存非常有用。图 4 显示了查询通知处理过程。
图 4: 查询通知
多活动结果集 (MARS)允许每个连接有超过1个的挂起请求,特别是允许每个连接有超过1个的打开的默认结果集。默认结果集是一种前向的、只读的结果集,采用默认结果集,客户端驱动可以透明的接受数据块(表格数据流buffer大小的数据块)以满足应用程序的要求,而无需在服务器往返(就像使用服务器游标)。 应用程序可用使用一种简单的一次一行的编程方法而不会有性能上的损失。多活动结果集消除了这一当前的限制:一个打开的默认结果集将阻止发送新的请求给服务器,直到整个结果集关闭为止。
五、数据镜像中的透明的故障转移SQL Server 2005 可通过数据库镜像来支持热备功能。如果一个SQL Server 实例失效,工作可以被自动的转移到备份服务器上。这要求一个实例见证故障转移,该实例被称为见证实例。热备例子要求已存在的客户端连接必须知道故障转移(和新的服务器实例建立连接),如果客户端在下一次访问中发生错误,必须手工编程来故障转移,这并非好的方案,ADO.NET 2.0中的SqlClient 无需特别的编程便可支持客户端的故障转移。
XML Support
像本机XML数据类型和XQuery之类的先进功能使组织能够无缝的连接内部和外部的系统。SQL Server 2005 将完全支持关系型和XML 数据,这样企业可以以最适合的格式来存储,管理和分析数据。对于那些已存在的和开放的标准如: Hypertext Transfer Protocol (HTTP), XML, Simple Object Access Protocol (SOAP), XQuery, 和 XML Schema definition language (XSD) 的支持也将更方便的让整个企业系统互通。
XML 数据类型
XML能够比SQL Server所支持的那些标量数据类型更好的对复杂数据进行建模。基于字符串的内置数据类型char 或者是varchar并不能够充分有效的利用XML数据的大量优点。举例来说,如果XML被存储为一个字符串,那么你可以插入或检索整个XML文档,甚至能够从中检索连续的字符,但你不能定位查询文档中内容。通过XML数据类型,SQL Server 2005使我们能够查询XML文档中的一部分,校验文档是否满足XML schema,甚至能够定位修改文档中的内容。 它也将传统的关系型数据和非结构化和半结构化的数据集成在一起,而这在SQL Server 2000中是不可能的。在SQL Server 2005中, XML数据被作为二进制大对象 (BLOBs)内部存放,使得重解析和压缩更有效。
一个XML schema集可以和类型化XML的一列相关联,这样便能够对已存储的XML数据的约束、插入、改写、值的类型进行校验,也能够优化存储和查询性能。SQL Server 2005 也提供了一些DDL 语句用于管理服务器上的schema。
XQuery
XML 查询语言,或者XQuery是一种专为查询各种类型XML数据的智能和高效的语言。使用XQuery,你可以对XML数据类型列和变量进行查询。. 和许多XML 标准一样, World Wide Web Consortium (W3C) 组织监视着XQuery的开发。 XQuery由 Quilt 这种查询语言发展而来,它基于多种查询语言,如, XML Path Language (XPath) 1.0, XQL, 和 SQL, 它也把XPath 2.0 包含为一个子集。因此,如果你有使用XPath 1.0的经历,你可以不用从头学起。然而,它比XPath1.0有些显著的增强,如:类型化,特别的函数,支持更好的反复,结果集排序,结构等。
SQL Server 2005 Beta 2 提供了更多的XQuery 功能,它允许在数据层操作XML对象。它支持XQuery 1.0 工作草案(2003年11页15日制定)的一个静态类型子集。
Web Services 支持
在SQL Server 2005中,你可以开发数据库层的XML Web services,把SQL Server 作为一个HTTP listener。这对那些以Web services为中心的应用程序提供了新型的数据访问功能。在SQL Server 2005中,你可以使用HTTP直接访问SQL Server,无需使用IIS这样的中间层listener。SQL Server 开放了一个 Web service 接口, 可以执行SQL语句和调用函数和过程,查询结果可用XML格式返回,并且可以利用Visual Studio 的Web services 架构。
XML for Analysis Services (XML/A)
用于分析的XML(XML/A)是一个本机的、基于标准的协议,被用于和Analysis Services服务器通信。通过它,可以非常容易的开发出新型的应用程序——集成分析和实时操作,可以从任何平台,任何语言来访问数据。采用XML/A本机协议,分析服务客户端无需任何配置,每一个服务器自动的成为一个Web Services。一个轻量的Win32层可用于向后兼容,如Analysis Services 2000 的 OLE DB for OLAP,ADOMD和ADOMD.NET。大多数用户也还能使用ADOMD.NET对象模型创建分析服务上的定制应用。
Application 架构
SQL Server 2005 带来了新的SQL Server 应用程序架构,包括: Service Broker, Notification Services, SQL Server Mobile, SQL Server Express。Service Broker 是一个分布式应用程序框架,它在数据库到数据库级上提供了可靠的异步通讯。