当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL Server:数据库中的快照

MSSQL
在SQL Server所在的计算机上运行病毒扫描软件
使用SQL Server导入和索引 Microsoft Word 文档
TOPN 子句与SET ROWCOUNTN 之对比
使用Transact-SQL计算SQL Server处理器的数量
SQL Server中全角和半角字符的比较问题
SQL Server数据库性能的优化
Win9x平台上SQL Server 2000的性能和局限
如何识别真实和自动创建的索引?
修复SQLSERVER2000数据库之实战经验
将一个更新划分为几个批次
一种基于记录集查找特定行的方法
将XML文件导入SQL Server 2000
将列更新从一个表传递到另一个表
打开UDP端口1434以浏览命名实例
如何使用系统管理员帐户管理多个开发人员?
设计数据库之经验谈
数据库的查询优化技术
小写转大写金额
SQL技巧:创建用来按小时报告的查询
SQL语句的自动优化

MSSQL 中的 SQL Server:数据库中的快照


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 103 ::
收藏到网摘: n/a

本文章主要和大家分享的是数据库的快照。快照与视图有点相似,但又有所不同。与视图一样,快照是导出的关系变量;但与视图不同的是,它们是真正的关系变量,而不是虚拟的—也就是说,它们不是通过在其它关系变量上的定义来表示自身,而是(至少在理论上是)通过它们各自的物化的数据备份。

 

定义一个快照就像是执行一个查询,但不同的是:

a) 查询的结果是以一个特定的名字保存在数据库中,它是只读的关系变量。

b) 快照被定期刷新(比如每天)—也就是,它当前的值被丢掉,重新执行查询,新的结果成为快照的新值。

这样,快照就会和2 4小时前一样表示相关的数据。

快照的意义在于,很多应用—甚至可能绝大部分—可能容忍,或是需要与某个确切时间

相近的数据就可以了。报表和会计就是这一类的应用;这类应用的典型要求是数据被冻结在某一适当的时刻(比如是进行会计统计的一段时期),快照可以使这样的数据冻结而又不影响其它事务在这些数据上的更新操作(在真实数据上)。相似地,它可以为一个查询的大量数据或一个只读的应用服务,而不封锁数据库,这是非常有用的。快照是“受控冗余”(control l edredundancy)的一种特殊情况,“快照刷新”就是相应的更新过程。

一般来说,快照定义语法如下:

 

 

 

 

<now and then>应该是“月,周,天,小时,或是n分钟,还可以是周一,周末,等等(特别地,用REFRESH [ON] EVERY UPDAT E可以保持快照始终与它所导出的关系变量同步)。

下面是删除快照的语法:

 

DROP avr <relavr name>;

 

显然,< relvar name>是用来指明快照。注意:假设当一个快照定义被其它关系变量定义

所引用时, 对这个快照的删除请求会失败。相应地, 可以扩展快照定义使之包括

RESTRICT”或“CASCADE”选项。