SQL Server 2008数据库引擎中几个重要的Discontinued Feature

刚才在测试SQL Server 2008的时候突然发现BACKUP LOG WITH TRUNCATE_ONLY命令提交后说语法错误,遂苦阅联机丛书,最后发现原来是被Discontinue了,这才想起貌似在SQL Server 2005中已经被Deprecated,到了2008果然被干掉了。于是索性全览了一遍被丢弃的功能,想想三年前的2005发布,决定总结一下。

原功能 替代品 上榜理由
BACKUP LOG WITH TRUNCATE_ONLY None 过去习惯性在收缩数据库脚本前加上这个命令,SQL Server 2008中不在支持这一命令,如果需要截断日志,只能通过将数据库设置为Simple还原模式才可以。当然BACKUP LOG WITH NO_LOG也随之淘汰了。
sp_helpdevice sys.backup_devices 这个存储过程在自动化备份管理脚本中被使用地有为频繁。现在无奈全面推行内部视图,看来这些通过系统存储过程来获取系统元数据的日子是越来越少了。不过这样确实不错,架构上看起来更加一致么。
60,65和70的数据库兼容级别 None 在创建数据库的脚本中尤其需要注意这一点
Surface Area Configuration Tool Declarative Management Framework和SQLCM 这个工具是在SQL Server 2005引入的,曾经在SQL Server 2005发布后被不断提倡,奈何红颜薄命阿……

不过相比之下,我们回顾一下SQL Server 2005被丢弃的功能,SQL Server 2008的改动相对还是小很多了,毕竟才3年而已么:

原功能 替代品 上榜理由
isql sqlcmd 原来还是有很多在Command Line模式下的维护脚本是用isql命令写的。
sp_config ‘allow update’ None 直接对系统表的修改被禁止了。这种被等同于修改操作系统注册表的行为被禁止后,系统当然是会安全很多了。
DBCC PINTABLE None 这是颇具争议的一个丢弃,尽管很多人认为Pin Table到内存里面有助于系统性能的提高,不过微软则坚持认为大家应该把对象的重要性交给内部的缓存管理器去评估。
Rebuildm.exe 安装程序中的REDUILDDATABASE选项 虽然没有带来什么不便,不过这个命令确实拯救过无数DBA的性命。
syslocks sys.dm_tran_locks 原来有很多人是依赖这个系统表来了解内部的锁压力的。不过用动态管理视图确实没有什么不方便,而且确实SQL Server的管理需要一套一致的机制。
*=和=* LEFT JOIN和RIGHT JOIN 好像很多老DBA都喜欢这么写,尽管大家都知道后面的那种才是ANSI SQL的格式。
通讯协议NWLink IPX/SPX, AppleTalk, Banyan Vines, Multiprotocol 仅能在TCP/IP sockets、命名管道、VIA以及共享内存中选择 料想选择前者通讯协议的人应该也不多了,不过倒也证实了TCP/IP对网络世界的影响,这些曾经还出现在NT年代的MCSE考试中的协议终于退出了SQL Server的世界。

这里只挑了一些个人认为比较重要的。注意:以下观点仅代表个人观点,欢迎大家推荐你认为同样重要的被丢弃功能。

Advertisements
Post a comment or leave a trackback: Trackback URL.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: