1.4升级到SQLServer2005的好处
来源:优易学  2011-12-4 20:30:26   【优易学:中国教育考试门户网】   资料下载   IT书店

 

◎存储引擎

针对存储引擎,SQL Server 2005 也进行了许多的强化:

l 动态字符串的数据列表可以跨页,通过 MAX 数据类型的声明,数据大小可以超过 8060 字节的限制。

l 更有效地使用 tempdb[1]

l 自动快速缓存数据表和数据表变量的第一页。

l 更有效地使用资源,如取得数据页(page)、减少使用事务记录。

l 备份

? 数据备份和 Log 备份可以同时进行,批次执行的 Log shipping 在备份 log 时不会
被数据备份卡住。

? Restore Verifyonly 语句现在会读取每一数据页,以确认数据,所以比以往的版本耗时。

l 文件 I/O

? 默认启动新提供的 Page Checksum 功能,提升系统的可信赖度(reliability)。

? 可以单独还原损毁的数据页。

l Insert:最佳化写入大量数据到 b-tree 数据区块,效率与 bulk load 相似,但不需要使用 bulk load 语句。

l 数据库恢复(recovery):更有效率,数据库在 undo 阶段就可以使用。但这需要企业版才支持。

l 事务管理提供单条记录的版本(row version),可在数据库级别设置 read committed snapshot,不必在连接(session)级别设置,就可以提供 snapshot isolation 的功能。数据库的相关设置如下:

? ALLOW_SNAPSHOT_ISOLATION

? READ_COMMITTED_SNAPSHOT

连接维持在原 Read Committed 事务级别

? 在 T-SQL 语句中可以通过 ReadCommittedLock 这个 Query hint;在启动 row
version 后,仍使用原 Read Committed 事务级别的行为。

l 触发器会利用 Row-level versioning 的技术,在读取新旧记录时,会自动读取 row-level version,不管数据库是否启动 snapshot isolation。

? 不像以往需要从事务记录找寻新旧改变,尤其在多人同时连接时,避免同时抢 log
读取的操作。

l 以相同的字段重建聚集索引(Clustered Index)时,如下列的语句所示,不会导致非聚集索引一起重建[2]

? DBCC DBREINDEX(tbl,idx)

? CREATE CLUSTERED INDEX idx ON Tbl(col) WITH DROP_EXISTING

? ALTER INDEX idx ON tbl REBUILD 新语句

SQL Server 内部的 OS(SQLOS)[3]更稳定更有效率

l 启动 AWE 设置后,仍可动态使用存储器。

l 更准确地在高速缓存中保留有用的数据页(page)。

l 加上对存储器数据页的 check sum 检查,以早期发现存储器硬件的错误。

l 保留一条 Dedicated Admin Connection(DAC) 资源,在 SQL Server 资源用尽时,可以通过该连接进入管理。

l 以 XML 格式输出死锁的相关数据,SQL Profiler 可用图2-24显示死锁信息。

l 以往线程(thread)是绑在 session 上,现在是绑在批次(batch)上,因此,当一个 session 传递多个批次,而每个批次都很耗 CPU 资源,现在可以分散到多颗 cpu 同时执行。

除了上述条列的各项功能外,另外还有在单一机器可以同时安装多个 SQL Server 数据库引擎、多个 Analysis Services、多个 Reporting Services 实例。通过 SQL Server 界面区配置提升安全管理的方便性。SQL Server Profiler 现今也可以记录Analysis Services 的执行内容等等。只要升级后,立刻可感受到上述功能的优点,而不必另行改变数据库架构与设计应用程序。

总的来说,因为 SQL Server 引擎更为聪明,更能有效地使用硬件资源,因此直接升级后,不改任何程序代码与设置的状态下,便可以提升性能、稳定性与管理方便性,尤其对于大型数据库更能发挥所长。当然,升级后,若你能稍作改变,使用SQL Server 新提供的功能是更佳的做法。

[1] tempdb 的使用建议:建立与 CPU 数目相同的文件数(参考该 SQL Server 实例的 affinity mask 设置),且多个文件的大小要相同。

[2]若聚集索引不是唯一的,因为维持唯一的值在以往可能会随着 rebuild 而重建,则非聚集索引凭着聚集索引指向数据的唯一指针也需要重建,现在 SQL 2005 会在重建聚集索引时,维护这个原有的唯一值。

[3]因为 SQL Server 的核心某部分需要做 Memory allocation、建立、分配与替 thread 排各 cpu 的调度等等,因此该部分也称为 SQLOS。

上一页  [1] [2] 

责任编辑:小草

文章搜索:
 相关文章
热点资讯
热门课程培训