数据分区
只有到了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放在有足够空间的单独磁盘上以提高性能。
考虑到快照隔离在避免阻塞和死锁方面的作用,我把它作为升级的第四个理由。
全文检索性能提升,并且有更大的可扩展性
更多读并发操作的应用
异步请求加快了分布式查询的性能
应用的可扩展性得到进一步提升:
对字符串摘要的维护– 新的统计信息
大规模的重编译
含有大于8K行的表
大量使用触发器的应用
数据库维护操作(DMO)
DBCCs, Backups, Indexes
诊断与troubleshooting
DAC, DMVs, XML Plans
全文检索会更快
程序并发性能有很大提高(RCSI)
异步请求提高了分布式查询的性能
改善了以下应用程序的可扩展性
有大量的重编译的程序
大量使用触发器的程序
数据库的维护操作
DBCC,备份,索引
对问题的诊断和解决
DAC, DMVs, XML Plans
全文检索
查询的统计与优化
编译与查询计划的共享
统计信息
锁定
查询的执行
数据库可靠性检查
存储引擎
复制
连接
全文检索可以具有多个实例
更易于管理
全文检索同其它实例和产品隔离开来
全文目录可以备份/还原
分离/附加(attach/detach db)
填充全文索引:100倍于SQL Server 2000的速度(依赖于数据)
全文查询:一般情况下快30-50%
索引视图查询性能的提高
更聪明的连接(join)处理:
R.x = S.x and S.x > 10 暗示了
R.x = S.x and S.x > 10 and R.x > 10
数学运算查询的化简
如:a>3 and a>5 可以化简为a>5
语句级别的重编译
SQL 2000是对整个批处理和存储过程的重编译
批处理(存储过程)
语句1
语句2
为何要重编译
表格里大量的数据更新(insert, update, delete)
统计信息更新 (update statistics)
浙公网安备 33010602011771号