它的属性,你将看到这个文件的大小与源数据库文件的大小相同;然而,实际上磁盘上的大小却接近于零。这时,数据库快照是没有它自己的数据。
你能运行上面我使用的脚本重新在SourceDatabase数据库里面插入10,000行数据到SalesHistory表中。这时,我的SourceDatabase数据库大小是12,480KB,同时,磁盘上我的SourceDatabase数据库大小现在为448KB。这时在SourceDatabase数据库中所改变的数据页都已经被拷贝到SnapshotDatabase数据库中了,这样就能解释为什么在磁盘上它的大小被增加了。
进一步思考
数据库快照允许你为报表创建只读数据库,并且如果有必要的话你可以恢复你的源数据库到你的数据库快照上。同样的,你也可以根据你的报表目的创建任意多个数据库快照。
特别值得注意的是,这些数据库快照会占用磁盘空间,如果有太多的数据库快照的话,它将很快的将你的磁盘阵列填满,尤其在一个产品环境下,如果数据经常要被更新,就更容易将磁盘阵列填满。
另外,使用数据库快照会降低数据库的性能,因为在数据库中将数据页作为执行写操作拷贝是增加了数据库输入/输出。
虽然有这些小缺点,如果你能为报表提出一个好的数据库快照创建方案,SQL Server 2005的这个新的特性将有更多的人使用。
|