2012-02-20 87 views
2

对于tempdb数据库中的永久表有没有任何用例?永久性我的意思是不使用#或##,但在tempdb中创建一个真正的表。我知道重新启动sql服务会清除tempdb,但是这种做法会因为其他原因而变坏吗?SQL Server tempdb永久表使用案例

我在问,因为我有一个这样的用例,我需要一个临时表,但会打开更多的SQL连接跨度。

编辑:在长期居住的临时表中的实际数据序列化的文件,而不是数据基础上整理或其他任何

回答

2

为什么在数据库中没有创建一个名为“临时”的架构(或分期),和在该模式中创建长期存在的临时表。例如

create schema [temp] 
    authorization [dbo] 

create table [temp].[MyTempTable] 
(
    Id int, 
    [name] varchar(50), 
    ... SomeColumns ... 
) 

更新:为了响应你额外的信息,您可以使用FILESTREAM? (SQL服务器2008年起)

+0

因为临时表中的数据将用于从服务器到网络的文件传输(串行化,然后使用sql select读取字节),而文件实际上是指数据库备份。 – 2012-02-20 10:51:17

1

的想法是不好的原因有很多,例如 - 如果你的数据库和tempdb(服务器)的排序规则不匹配 - 隐含的字符串比较可能会失败

1

它为什么准确地在tempdb上? 为什么除了发布的所有其他替代方案之外,还要创建共享数据库来保存此表?

+0

因为tempdb已经存在于所有客户的主分区旁边,所以为此创建另一个数据库看起来像是很多开销 – 2012-02-20 12:09:27

1

我建议采用不同方法的主要原因是因为tempdb已经是瓶颈,因为SQL Server对它的使用次数。我不会建议找到另一个将东西插入tempdb的原因。

除此之外,tempdb与任何其他位置一样好,并具有额外的好处,即在服务重新启动后,您留下的所有内容都将被清除。