还剩1页未读,继续阅读
文本内容:
SQL Server数据库快照工作原理详解电脑资料数据库快照是一个数据库的只读副本,它是数据库所有数据的映射,由快照被执行的时间点来决定它的内容,在SQL Serverxx中,它的另外一个强大的新特点是数据库快照数据库快照是一个数据库的只读副本,它是数据库所有数据的映射,由快照被执行的时间点来决定它的内容这些数据库快照在报表方面是非常有价值,因为在快照数据库中或者在原数据库中,对于任何查询而言没有锁就将被执行快照也可以使用在灾难恢复中,因为你可以将现有的数据恢复到现有的快照中,或者还可以在有害数据操作声明的事件中存储个别必要的表和数据数据库快照是如何工作的可以使用典型的数据库命令CREATE DATABASE语句来生成一个数据库快照,在声明中有一个源数据库快照的附加说明当快照被建立时,同时生成一个稀疏文件这个文件(只能使用在NTFS卷中)在初始化的时候并没有磁盘空间分配给它——尽管你可能在WINDOWS资源器中看到了文件的大小,它会看上去与原始的源数据库文件的大小相同对磁盘来说其实这个文件的大小接近于零数据库快照在初始化时读的数据文件是于源数据库的当源数据库的数据发生变化时,数据引擎就会将原始数据从源数据库拷贝到快照数据库中这个技术确保快照数据库只反映快照被执行时数据的状态当SELECT命令被用来反对数据库快照时,不管数据页的读取是否被定位在源数据库数据文件中还是在快照数据库数据文件中都是没有锁被的因为在只读数据库快照中是没有锁被,数据库快照对于报表解决方案是一个重要的解决方案一个快照的实例现在,让我们来看看数据库快照在SQL Serverxx中是如何工作的为此,首先我需要一个源数据库作为快照的下面的脚本将创建一个源数据库注意这里产品区域的大小我定义它的大小为CHAR
(150)来强调数据文件的增长级数,这样在我接下来的实例中将更容易解释清楚快照是如何工作的现在既然我已经有了一个源数据库,现在我装载一些数据来扩展数据文件的大小位如此,使用上面的脚本来创建销售历史表一旦你运行以下的脚本,就可以来操纵数据库文件储存的地方了,这个创建快照的语法与创建数据库的语法非常相似两个主要的区别第一个区别是AS SNAPSHOTOF SourceDatabase...。