不可否认,说到真正的企业特性,尤其是在高可用性和灾难恢复方面,SQL Server总是比不上Oracle数据库。Oracle凭借联机重建索引、基于快照的恢复和故障替换时进行日志传送等特性,能够满足24×7的关键业务型操作,而SQL Server要是没有第三方解决方案的帮助,则无法提供真正的零数据丢失。对不需要上述这些保护的客户而言,SQL Server提供了可靠稳定的数据库,而且许可费比较低。不过与维护有关的停机却是个不争的事实。
现在,这种状况已发生了变化。经过五年多的修改后,SQL Server 2005不但克服了高可用性和灾难恢复方面的缺点,还几乎在各个方面都有了全面改进:管理任务得到了简化;监控和诊断功能得到了增强;默认的锁定配置、数据加密及其他新特性增强了安全。如今,分析服务(Analysis Services)、报表服务(Reporting Services)和数据挖掘(Data Mining)全面集成,而且已经很成熟。数据转换服务(DTS)已从头到尾经过了改写,已逐渐成为更强大、更灵活的SQL服务器集成服务(SSIS)。与Visual Studio和.Net/CLR的集成,把SQL Server的内部机制展现给了.Net开发人员、把.Net的内部机制展现给了SQL开发人员。这意味着,现在就可以利用.Net的强大功能,用于存储过程、数据流和数据转换、商业智能等应用。
SQL Server 2005还承诺能够提高性能。除了让数据库管理员对数据库进行分区、实现负载均衡外,微软还在改进内存管理、索引策略和查询优化方面进行了大量工作。用户会看到这种区别的。
目前的SQL开发人员和数据库管理员需要一段时间才能充分认识到SQL Server 2005出现的许多变化。高可用性方面的一个关键特性:数据库镜像(database mirroring)实际上仍只是“测试版本”。微软还有一些工作要做,特别是在集成及完善SQL Server的许多工具方面。不过,微软的彻底修改缩小了SQL Server与Oracle之间的差距,SQL Server由此成为一个真正的竞争者,哪怕是在大型数据库和要求极高的企业环境这一领域。
图1 SSIS的新的控制流容器其功能远远超过了DTS的功能,它让你可以对操作进行分类、按顺序执行。
SSIS一瞥
集成工具集的全面变化给数据库管理员带来了受人欢迎的挑战。
优点:新的建模范例、流控制容器和.Net集成扩充了功能;软件包易于编写、存储及部署;复杂操作执行起来比以往快得多。
缺点:比较复杂的工具集有些地方难以学会;没有与Management Studio集成。
移动数据的新方法
SSIS是经过改写的用于移动及操纵数据的一组工具,它不但提供了比数据转换服务(DTS)大为改进的性能、可靠性和功能,而且提供了许多新的预制任务,可以用于减少执行最常见的一些操作所需的代码数量,其中包括备份数据库、为表重建索引以及进行完整性检查。更为重要的是,SSIS完全改变了DTS使用的建模范例(modeling paradigm),以逻辑方式把其基本模块划分成不同的控制流和数据流部分。
控制流容器以图形化方式表示了操作,不然,开发人员需要编写大量代码,花费大量时间来进行调试。用新容器(即Sequence、For Loop和Foreach等容器)执行的有些操作根本无法用DTS来执行,要么就是管理起来太困难。
SSIS还把范围扩大到了不同平台,而不仅仅是不同数据库。譬如说,DTS提供了联机分析处理(OLAP)方面的有限的可见性,实际上根本不提供数据挖掘方面的可见性,而SSIS原本就支持这些可见性。这意味着,可以运行数据挖掘查询、处理慢慢变化的维度,并把数据发送到用户喜欢的任何地方(甚至可以发送到报表服务工具)。实际上,SSIS充当了SQL服务器分析服务(SSAS)、SQL服务器解析服务(SSRS)以及符合面向对象数据库连接性(ODBC)的任何数据源之间的桥梁。
软件包配置是得到大幅改进的另一个方面。这种配置让用户可以定义软件包的某些元素:文件位置、数据库连接和特殊登录等元素,它们可以从外部数据源(如XML文件)读取、运行时加以运用。这项功能让用户可以非常迅速地部署软件包,因为不必改变它们就可以把它们从一个系统移动到另一系统;用户只要改变配置里面的动态元素,软件包就会在新服务器上运行。
最后,但并非最不重要的一点是,新的.Net集成功能把SSIS从DTS对功能有限的VBscript的依赖当中解放出来,让代码编写人员能够使用功能丰富的VB.net。正是由于这个原因,文件和字符串处理、数学运算和Win32调用大大简化、速度大大加快。
读者朋友可能已经预料到,功能和灵活性都增强的SSIS是以变得更复杂为代价的。SSIS摆在人们面前的是似乎困难重重的学习过程,不过一旦学会如何使用之后,SSIS会改变你处理数据的方式。以往无法联系的系统现在可以完美集成,还可以利用.Net的全面功能。复杂数据把操作导入数据仓库和分散的系统只用耗用一小部分时间来创建、执行及支持。其他复杂任务的执行速度也会大大加快,这意味着,可以更容易及时完成项目,项目也不会因功能有限的DTS以及必须把诸多操作组合起来而被耽搁。
图2 Management Studio整合了OLTP和OLAP管理与开发,它使用报表服务在数据库上提供详细报表。
管理一瞥
管理工具的动态变化不会让用户完全满意。
优点:监控、改进的复制、联机恢复及其他功能提高了可用性、加快了灾难恢复;动态管理视图件和监控方面的改进为了解数据库操作提供了更好的可视性;安全方面的改进包括:支持Windows口令政策、加强了对模式变更的控制以及本地加密。
缺点:Management Studio存在性能和稳定性问题; Profiler没有与SSMS合并。 还没有正式支持镜像功能。
大大加强管理功能
微软还对管理工具进行了一些重大改进,用新的SQL Server Management Studio(SSMS)取代了企业管理器和查询分析器。SSMS既可以用做数据库命令行——可以用来执行诸如创建数据库和管理用户账户之类的任务;又可以用作编写数据库代码的工具。SSIS和Profiler没有被整合到SSMS里面。
这些改变不会让用户完全感到满意。首先,执行通常的查询任务,譬如浏览执行计划,甚至只是执行查询,速度都要慢得多。查询在运行时,屏幕几乎没有多大反应,查询执行计划所用的时间也要长得多,有时还会导致窗口停止。微软还改变了执行计划的布局,所以比较大的计划浏览起来会困难得多。许多用户偏爱的键盘快捷键也被取消了,现在要是用鼠标右键点击视图(过去这项操作可以让你编辑视图),会把你直接引向查询生成器。许多数据库管理员不会喜欢这样。
不过与总体上更丰富的管理功能相比,这些不便之处并不重要。微软在一个方面取得了出人意料的成功,那就是SQL错误日志管理。SSMS不但可以显示SQL错误日志,还能够把它们与Windows NT事件日志结合起来放在同一窗口显示,让数据库管理员在一个地方就能浏览所有相关信息。另外值得一提的是Profiler的改进之处:现在它可以结合SQL跟踪日志和Perfmon日志。这就大大简化了把性能计数器和特定查询关联起来。实际上,如今要找到用户想搜寻的具体内容轻而易举,因为只要点击Perfmon日志里面的性能峰值,它就会自动把用户带到Profiler日志里面的相关地方。
SQL的新管理功能其核心是动态管理视图(DMV)和函数,这样系统管理员就能更加深入地了解数据库操作。过去微软把数据库的较深层面隐藏起来,可是要满足管理大型数据库的需求,势必需要为数据库管理员赋予更大的控制权。DMV为了解内存、索引使用、表统计信息、服务器统计信息和安全等信息提供了更大的可见性。现在只要用鼠标轻轻一点,就能看到以往所没有的众多信息。
此外,数据库管理员可以得到详细数据库和服务器统计信息方面的现成报表,其中包括模式更改、内存和索引使用、资源耗用、分块及其他许多信息。SSMS依赖SSRS实现这项功能,不过如果在忙碌的服务器或者拥有大量对象的大型数据库上调用报表,有时候SSMS会陷入停顿。让人有点失望的还有,微软也没有提供报表定义语言(RDL)代码。因而,用户没法改变现成报表(canned report)的布局,也无法像通常使用SSRS那样添加自己的报表或者创建订阅内容。不过,可以把报表手动导出到Excel或者PDF。
SQL Server 2005的一个重要设计目标就是提高默认状态下的安全系数。为了缩小被攻击范围,最危险的一些特性都被禁用,除非数据库管理员启用它们。这有所帮助,不过对有经验的数据库管理员来说帮助不大。他们基本上会编写锁定脚本,觉得安装时加以运行不是很麻烦。安全方面真正重要的改进则是密码管理和权限分配方面。现在可以设置原始SQL密码来顾及Windows密码政策,这意味着用户可以要求SQL密码拥有与Windows账户同样的密码强度、失效日期、历史、锁定阈值、锁定时间及生命期等政策,甚至可以要求用户在下次登录时更改密码。安全方面的其他重要改进还包括:加强了对模式变更的控制(下文会有所讨论)、能够对数据进行列级加密。
共2页: 1 [2] 下一页 |