sql - SQL 中的持久临时表?

标签 sql sql-server tempdb

MS-SQL 中是否可以有一个“持久”临时表?我的意思是,我当前有一个后台任务,它生成一个全局临时表,该表由各种其他任务使用(这就是我将其设为全局的原因)。不幸的是,如果该表变得未使用,它会被 SQL 自动删除 - 这由我的系统妥善处理,因为它只是将其排队以再次重建,但理想情况下我希望它每天只构建一次。因此,理想情况下我可以设置一些超时参数,例如“如果 1 小时内没有任何内容触及此内容,则删除”。

我真的不希望它出现在我现有的数据库中,因为它会导致与管理数据库相关的更多麻烦(碎片、日志增长等),因为它是有效的汇总数据,仅在 24 小时内有用,并且占用超过 1 GB 的硬盘空间。

最坏的情况是,我的计划是在与 tempdb 相同的驱动器上创建另一个数据库,将其命名为 PseudoTempDB,然后自己处理删除操作。

任何见解将不胜感激!

最佳答案

如果您将表创建为 tempdb.dbo.TempTable,则它不会被删除,直到:

a - SQL Server 重新启动

b - 您明确删除它

如果您希望它始终可用,您可以在模型中创建该表,以便在重新启动期间将其复制到 tempdb(但它也会在您之后创建的任何新数据库上创建,因此您可以必须手动删除)或使用启动存储过程来创建它。但是,无法通过重新启动来保留数据。

关于sql - SQL 中的持久临时表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/845936/

相关文章:

mysql - 如何更改 MySQL 中的默认超时时间

php - 连接 3 个表,mysql php

sql-server - 在 MSSQL 中组合 LTRIM 和 RTIM 以及 REPLACE 函数

sql - SQL - 排除仅满足条件的用户

database - 在 SQL Server 中查询只读数据库时,可用 RAM 的充分增加是否可以消除 tempdb 的使用?

sql - SQL查询失败磁盘空间不足

sql-server-2008-r2 - TempDB有2个数据文件,但SQL Server不知道?

mysql - 在 MySQL 中表示票价表

php - 如何使搜索查询词加粗

sql - 反向外键约束