【问题标题】:Exclude table from Database Logging从数据库日志中排除表
【发布时间】:2012-05-16 13:30:47
【问题描述】:

我们的产品包含多个包含自定义应用程序安全信息的表格。在某些情况下,这些 securityinfo 表可能包含大量行(在一种情况下为 1300 万行),这些表用于加快查询速度,并且可能从头开始重建,但这在时间/处理能力等方面代价高昂。

应用程序的设计方式,更有效(在程序运行期间)删除安全部分的记录,然后插入新记录,而不是识别要保留/更新的记录并插入那些还没有。

不幸的是,当数据库恢复模式设置为完全时,此过程会生成大量事务日志。

在 SQL 2005+ 中是否有可能在具有完整恢复模式的数据库中拥有一个未记录的表(简单恢复模式)?

我们可以在 Web 应用程序/数据库首次启动时重建 securityinfo 表以防恢复。

另外,最好的解决方案是使用具有简单恢复模型的并行数据库。

干杯蒂姆

【问题讨论】:

  • 为什么投反对票?这是一个可以回答的与编程相关的问题。

标签: sql-server recoverymodel


【解决方案1】:

据我所知,只能为每个数据库设置恢复模型,可能是因为事务日志是针对整个数据库的。或者BOL puts it:

恢复模型是一种数据库属性,它控制事务的记录方式、事务日志是否需要(并允许)备份以及可用的恢复操作类型。

(重点是我的)。因此,您最好的选择是将这个特定的表移动到另一个数据库,或者查看内存中的数据库/缓存,因为该表听起来像是可以从权威数据源轻松重建的缓存。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-08
    • 1970-01-01
    • 2021-12-04
    相关资源
    最近更新 更多