你究竟对SQL Server 2005了解多少?

网络整理 - 07-27
写在SQL Server 2008之前:你究竟对SQL Server 2005了解多少?

  很多人关心的和担心的都是SQL Server 2005 相对它的前版本SQL Server 2000所做的重大改进或新增功能。

  在我升级到SQL2005之后,不得不说的:你也值得拥有。(套用一句广告语,呵呵)

  我总结了一下个人认为SQL Server 2005 中最值得你为之升级的10 个理由。无论你是想了解或学习SQL Server 2005,还是正在评估或考虑升级到SQL Server 2005,我相信当时你看完这篇帖子一定会对你的决定起到参考作用。

  升级理由一:数据分区

  只有到了2005 版本SQL Server才拥有了真正的表和索引数据分区技术。这个技术一下子使SQL Server数据库从“青壮年”成长为成熟的企业级数据库产品,是一个里程碑性质的标志。数据分区技术极大加强了表的可伸缩性和可管理性,使得SQLServer 处理海量数据的能力有了质的飞跃,是我认为最值得升级的一个理由。

  升级理由二:可编程性

  CLR 集成

  SQL Server 2005的可编程性是值得升级的第二个重要理由。从来没有哪一个版本能像SQL Server 2005 这样带来这么多编程方面的变革。说老实话,在我知道的瞬间我是惊呆了。有些变化是革命性的。如CLR(Common Language Runtime,公共语言运行时)集成。你可以轻松利用.NET语言的优势如其面向对象的封装、继承和多态特性,编写出那些需要对数据进行复杂数值计算或逻辑的代码,如字符串处理,数据加密算法,XML数据操作等等。你现在需要的仅仅是考虑什么时候使用T-SQL 语言,什么时候使用CLR。我猜测那些SQL Server软件开发商几乎会立即升级到SQLServer 2005 享受数据库编程的便捷。

  T-SQL 语言增强

  SQL Server 2005 中的T-SQL语言有了非常大的改进。其中笔者最为称道的是现在可以使用和C++或C#类似的TRYCATCH结构对T-SQL 进行错误处理了,大大简化了T-SQL错误处理编程。估计很多T-SQL语言使用者可能就为了这个TRY-CATCH 结构而迫不及待地升级到SQL Server 2005。

  升级理由三:安全

  SQL Server 2005 的安全功能是我认为值得升级的第三个理由。SQL Server 2005 的安全达到了前所未有的强大水平,有着比以前版本更清晰的安全模型即主体,安全对象和权限。

  如果你需要保护数据库中的敏感数据,那么SQL Server2005 中的数据加密功能绝对值得考虑。以前不止一次有客户问我如何加密数据库中的某些数据,是否可以使用一些内部不公开的函数如PWDENCRYPT加密数据。我的回答是使用Windows的EFS(加密文件系统)功能加密数据库文件或在应用程序层对数据加密后再存储。现在用户期盼已久的数据加密功能终于在SQL Server 2005 中得到实现,那些有机密数据需要保护的用户值得高兴了。SQL Server 2005不是简单的提供一些加密函数,而是把市场上已经成熟的数据安全技术引进到数据库中,有一个清晰的加密层次结构。SQL Server 2005 支持证书(certificate),非对称密钥和对称密钥算法,一是防止敏感数据被泄漏,二是防止数据被篡改。对称密钥支持RC4,RC2,TripleDES 和AES算法,而非对称密钥使用RSA 算法。证书其实就是非对称密钥中公钥的容器。密钥管理是安全中比较弱的部分。SQL Server 2005 每一层都使用证书、非对称密钥和对称密钥的组合对它下面的一层进行加密,提高了密钥安全性。出于性能考虑,一般不用加密强度大的非对称密钥或证书直接加密数据,而是使用对称密钥加密数据获得较快的性能,然后使用证书或非对称密钥加密对称密钥。

  升级理由四:快照隔离

  你还在为系统出现的阻塞(blocking)或死锁(deadlock)现象苦恼吗?快试试SQL Server 2005 中的快照隔离吧。通过行版本(row versioning)控制技术,SQL Server 2005 除了原来支持的四种事务隔离级别(脏读、提交读、可重复读、可串行读)外新增了一个快照(SNAPSHOT)隔离级别,有可能使阻塞或死锁成为历史。SQL Server在TEMPDB中存放不同版本的数据行,select 语句读取这些不同版本的行,读操作不阻塞写数据,写操作也不阻塞读操作,这样那些由于读/ 写争用导致的大量死锁的系统将从中获得无穷益处。如果你的系统复杂难优化,那么升级到SQL Server 2005 试试快照隔离级别,也许会有意想不到的效果。

  SQL Server 2005中的快照隔离可细分为两种即READ_COMMITTED_SNAPSHOT和ALLOW_SNAPSHOT_ISOLATION。建议大家多使用前者,因为已提交读隔离可用于大多数现有应用程序,而不需要进行任何更改,其占用的TEMPDB空间也少。可以预见如果使用快照隔离级别,那么需要特别关注TEMPDB的大小和性能。你也许需要把TEMPDB放在有足够空间的单独磁盘上以提高性能。

  考虑到快照隔离在避免阻塞和死锁方面的作用,我把它作为升级的第四个理由。

  升级理由五:数据库镜像

  对于那些要求高可用性的用户来说,数据库镜像也许是考虑升级的唯一理由。SQL Server 2005的前版本在高可用性方面提供了故障转移群集(Failover Cluster)和Log shipping方案。群集方案的一个好处是在一台机器发生问题时它可以提供极快的故障转移能力,在备份服务器上联机数据库,应用程序只需重新连接即可。群集方案的一个缺点是数据库放在共享盘上,有单点失效这个缺点,一旦共享盘失败将导致整个系统崩溃。所以群集方案一般都要结合严紧的备份方案一起使用。而logshipping系统有一个时间上的延迟,且如果日志备份很大,传送速度也是个问题。SQL Server 2005引入的数据库镜像可作为故障转移群集或Log shipping 的替代或补充方案来提高数据库的高可用性。镜像的主要优点是它比前两者更容易管理,没有群集的单点失效缺点,也没有log shipping 的时间延迟。镜像服务器可以放在很远的地方,提高了作为备份服务器的高可用性。

  升级理由六:商务智能BI 增强

  SQL Server 2005 对已经有或打算开发基于SQL Server 的商务智能方案的用户吸引力极大。SQL Server 2005中有关商务智能方面的增强很多,是升级的很好理由。首先是传统的DTS(Data Transformation Services)被新的IS(Integration Services)代替。SQL Server 2000 中的DTS用来在不同服务器之间转移数据,但对于复杂重复的工作流DTS倍感吃力。IS重新改写了DTS的数据流引擎,引入提取、转换和加载(ETL)数据的新编程体系,将数据流与控制流分开,开发能力大大加强,包部署、管理和性能方面也比DTS上了一个数量级。笔者看来,DTS终于从原来的小打小闹成长为成熟的IS 数据集成服务体系。

  分析服务(Analysis Services)在SQL Server 2005 中也有很多改进。原来没有profiler想跟踪分析服务里面的语句非常痛苦。现在2005 终于支持profiler了。Profiler对性能调优和排查错误将非常有用。分析服务2005 真正具备了实时分析能力,新增加了四种数据挖掘算法,也支持.NET语言进行开发(如存储过程等)。至于报表服务,2005 版本中添加了报表生成器和模型设计器这两个新工具,支持报表拖拉设计。2005 的报表改进如新的打印功能、多值参数等。设计过报表的人员会深深知道多值参数的妙处。

  另外,无论是IS、报表服务等都可以在类似Visual Studio的环境中开发,任务完成不过鼠标拖拉之间,非常容易上手。