强大的备份功能
在数据备份方面,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中国
作者
相关推荐
-
如何解决和避免SQL Server数据库死锁
学习如何避免SQL Server数据库死锁的第一步是做好准备工作。根据SQL Server专家的说法,了解死锁 […]
-
如何使用SQL Server数据库脚本创建数据库?
你可以手工创建SQL Server数据库,但懂得如何设置数据库脚本是十分必要的。本文是执行数据库创建脚本所涉及的步骤。
-
如何为你的数据库事务日志减肥?
在大多数SQL Server的工作环境中,尤其是在OLTP环境中,数据库的事务日志性能出现瓶颈时往往会导致事务完成需要更多的时间。
-
SQL Server 2008将退出微软主流数据库支持
你的企业是否还在运行SQL Server 2008?请注意微软为SQL Server 2008提供的主流技术支持服务将于今年的7月8日正式结束。