sql-server - 从数据库日志记录中排除表

标签 sql-server recoverymodel

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

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

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

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

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

或者,最好的解决方案是拥有一个具有简单恢复模型的并行数据库。

蒂姆干杯

最佳答案

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

A recovery model is a database property that controls how transactions are logged, whether the transaction log requires (and allows) backing up, and what kinds of restore operations are available.

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

关于sql-server - 从数据库日志记录中排除表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10619646/

相关文章:

c# - 将 SSIS 包转换为 .NET 应用程序?

php - 无法从 Centos 6 中的 PHP 连接到 mssql 服务器

sql-server - TRUE 的 DT_BOOL 值映射到tinyint 字段中的255。为什么不是 1?

c# - 为什么 EF 在进行一对多连接时会不必要地检索 ID?

sql-server - SQL Server Compact Edition 4.0 SDK?

sql-server - SQL 服务器 : Recovery model effect on TempDB