2012-02-20 122 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與任何其他位置一樣好,並具有額外的好處,即在服務重新啓動後,您留下的所有內容都將被清除。