SQL 2008如何引诱我们升级?(二)

日期: 2008-12-02 作者:思维牧童 来源:TechTarget中国 英文

  强大的备份功能

  在数据备份方面,SQL Server 2008提供了备份压缩功能。和使用数据压缩所不同的是,我强烈推荐大家使用这个备份压缩功能。节省存储数据的硬盘空间固然非常伟大,但是让单独备份的数据库文件体积更小则更美妙。你是否有过需要把一个大数据库文件从一个服务器拷贝到另一个服务器的经历?或许你现在正在进行一个备份数据库文件的复制,或者搭建一个测试环境,或者是在服务器挂了后进行数据恢复,这时候你或许在为通过网络拷贝一个500G大小的数据库文件而发愁。最简单的一个常识是,拷贝的文件体积越小,拷贝完成的速度就越快。在此之前,你或会通过将这个数据库文件压缩成zip文件,使其体积更小,更便于携带。而现在,通过备份压缩功能,你就可以节省备份数据库文件的体积。

  要想使用备份压缩功能,你只需要简单的在BACKUP DATABASE语句后简单的加上一个WITH COMPRESSION选项即可,如下例所示:


BACKUP DATABASE Adventureworks2008
TO DISK = ‘D:BackupAdventureWorks.bak’  
WITH COMPRESSION 

  如果你想知道这个备份压缩功能究竟可以为你节省多少空间,这儿有一个例子。在不使用备份压缩功能的情况下,我对一个965MB的数据库进行了备份,得到了一个大小为636MB的备份数据库文件。但是如果使用了压缩功能,相同的数据库所得到的备份文件大小只有147MB。不同数据库的压缩比率可能会有所不同,但是正如上面例子所示,你总可以获得比较大的压缩效果。

  学会使用Merge语句

  在SQL Server 2008中,有一个新的MERGE语句让我有一点点激动。SQL Server开发者在编写修改表的存储过程时,会非常喜欢这个新的T-SQL语法。使用“IF-THEN”来决定一个数据行是否需要被插入、更新或删除的时代已经过去了。MERGE让我们可以一次搞定所有的逻辑和修改。而且,你可以一次就能搞定整个数据集的对比,不用再逐行进行对比。以下是使用MERGE语句的一个例子:


MERGE tbl_address AS current_addresses
USING ( 
SELECT customer_objid = address_label, 
addressline1, addressline2, city, region, country, zip
code, is_deleted 
FROM @addresses)
AS 
source_addresses(address_label, addressline1, 
addressline2, city, region, country, zipcode, 
is_deleted) 
ON 

current_addresses.address_label = source_address 
es.address_label 

WHEN NOT MATCHED THEN 
INSERT (address_label, addressline1, addressline2, 
city, region, country, zipcode) 
VALUES (source_addresses.address_label, 
source_addresses.addressline1, 
source_addresses.addressline2, 
source_addresses.city, source_addresses.region, 
source_addresses.country, source_addresses.zipcode) 
WHEN MATCHED AND source_addresses.is_deleted 
= 1 
THEN DELETE 
WHEN MATCHED THEN 
UPDATE 
SET address_label=source_addresses.address_label, 
addressline1=source_addresses.addressline1, 
addressline2=source_addresses.addressline2, 
city=source_addresses.city, region=source_address 
es.region, country=source_addresses.country,zip 
code=source_addresses.zipcode

  我们简单的对上述例子进行一下点评。USING部分定义了新数据,在这个例子中是一个表变量。ON部分定义了新数据和现有数据之间的联接。最后,它通过一系列的MATCHED语句来进行相应操作,其中包括WHEN NOT MATCHED的时候进行插入操作,WHEN MATCHED的时候执行更新操作,或WHEN MATCHED且符合一些其它条件的时候进行删除操作。这是一个真正让你省心省力的功能,其语法更干净,且符合我们习惯的思维逻辑。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐