tempdb数据库中的永久表是否有任何用例?永久我的意思是不使用# 或##,而是在tempdb 中创建一个真实的表。我知道重新启动 sql 服务会擦除 tempdb,但是这种做法会因为其他原因而不好吗?
我在问,因为我有一个用例,我需要一个临时表,但它将打开更多的 sql 连接跨度。
编辑:长期临时表中的实际数据是序列化文件,而不是基于排序规则或其他任何东西的数据
tempdb数据库中的永久表是否有任何用例?永久我的意思是不使用# 或##,而是在tempdb 中创建一个真实的表。我知道重新启动 sql 服务会擦除 tempdb,但是这种做法会因为其他原因而不好吗?
我在问,因为我有一个用例,我需要一个临时表,但它将打开更多的 sql 连接跨度。
编辑:长期临时表中的实际数据是序列化文件,而不是基于排序规则或其他任何东西的数据
为什么不在数据库中创建一个名为“temp”(或 Staging)的模式,并在该模式中创建长期存在的临时表。例如
create schema [temp]
authorization [dbo]
create table [temp].[MyTempTable]
(
Id int,
[name] varchar(50),
... SomeColumns ...
)
更新:响应您的额外信息,您可以使用FILESTREAM吗?(SQL Server 2008 及更高版本)
由于许多原因,这个想法并不好,例如 - 如果您的数据库和 tempdb(服务器)的排序规则不匹配 - 隐式字符串比较可能会失败
为什么它必须完全在 tempdb 上?除了发布的所有其他替代方案之外,为什么不创建一个共享数据库来保存该表?
我建议采用不同方法的主要原因是 tempdb 已经成为瓶颈,因为 SQL Server 对其进行了多次使用。我不建议找到另一个将东西插入 tempdb 的理由。
除此之外,tempdb 与任何其他位置一样好,还有一个额外的好处是,在服务重新启动后,您留在其中的任何内容都将被清除。