我们的产品包含多个包含自定义应用程序安全信息的表格。这些 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/