是否有在 SQL Server 中使用全域臨時表的真實場景?我知道全域臨時表由任何活動的現有連接共享,這意味著它應該由第一個連接會話創建,并在所有連接關閉時自動洗掉。我在互聯網上搜索了很多關于什么是全域臨時表以及如何使用它的資訊,但是我找不到任何真實世界的用例。
我問這個問題是因為我正在開發一個 .NET 資料訪問庫,我想知道是否應該支持全域臨時表。全域臨時表對我來說聽起來有點奇怪,因為它必須由第一個連接創建,并且由于它會在所有連接關閉時自動洗掉,因此在創建時需要檢查全域臨時表是否存在。這也可能會引入競爭條件。IMO 永久表更簡單,除了全域臨時表可能具有一些性能優勢,因為它存在于 tempdb 中。
uj5u.com熱心網友回復:
我參與的一個專案曾經使用全域臨時表進行一次性資料遷移,其中涉及在單獨的 SSMS 選項卡中按順序運行多個生成的 SQL 腳本。這些腳本使用全域臨時表來共享資料。完成后,關閉選項卡(特別是創建臨時表的選項卡)安靜地清理作業資料。
除此之外,我從未見過它們被使用過。
uj5u.com熱心網友回復:
簡短回答:總有比使用全域臨時表更好的解決方案。
我唯一一次發現全域臨時表的價值是當我試圖生成一個表,該表可以被坐在與我不同的終端的任何人訪問,并且我不需要擔心清理。
我曾經每月為我的同事舉辦不太技術性的學習研討會(想想 BA 和 QA)。為了讓他們實時練習并讓每個人看到彼此的插入、洗掉和遇到并發問題,我在我們的服務器上創建了全域臨時表,這樣我們就不會冒在保存真實資料的表上執行的風險。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/381406.html
標籤:sql 。网 sql-server ado.net
