文章編號: 305977 - 上次校閱: 2006年11月20日 - 版次: 5.1 INF:常見問題集 - SQL Server 2000 - 資料表變數
結論 本文將會為您解答 SQL Server 2000 中與資料表變數相關的一些常見問題集 (FAQ)。 如果要讀取《SQL Server 線上叢書》對於資料表變數的說明,請造訪下列 Microsoft 網站: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_ta-tz_7ysl.asp
(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_ta-tz_7ysl.asp)
其他相關資訊問 1:為什麼已經可以使用暫存資料表,還要引入資料表變數呢? 答 1: 資料表變數具有下列優於暫存資料表的優點:
答 2: 下列文章將告訴您為什麼要重新編譯預存程序的原因: 243586?
(http://support.microsoft.com/kb/243586/
)
Troubleshooting stored procedure recompilation
<因為特定暫存資料表作業而進行重新編譯>一節也會列出一些需求,以避免因為暫存資料表,而必須進行重新編譯。這些限制不適用於資料表變數。資料表變數會與建立它們的批次檔完全隔離,所以當執行 CREATE 或 ALTER 陳述式時,並不會發生任何 re-resolution (暫存資料表可能會發生這種情形)。暫存資料表必須具有這個 re-resolution,才可以從巢狀預存程序參考資料表。資料表變數可以完全避免這種情形,因此預存程序可以使用已編譯的計劃,藉以節省處理預存程序的資源。 問 3:資料表變數有哪些缺點? 答 3: 將資料表變數與暫存資料表作比較,資料表變數有下列缺點:
答 4: 資料表變數並不是僅供記憶的結構。因為資料表變數可保留的資料可能多於記憶體的存放量,所以在磁碟中必須擁有儲存資料的空間。資料表變數建立於與暫存資料表類似的 tempdb 資料庫中。如果有記憶體可供使用,則當資料表變數和暫存資料表尚在記憶體 (資料快取區) 時,便會予以建立及進行處理。 問 5:我一定要使用資料表變數,而不能使用暫存資料表嗎? 答 5: 這個問題的回答將視下列三個因素而有所不同:
一般而言,除非您有大量的資料或必須重複使用資料表,否則,您都可以隨心所欲地使用資料表變數。在這種情況下,您可以在暫存資料表上建立索引來增加查詢效能。但是,每個案例都可能有所不同。Microsoft 建議您進行測試,以便確定針對特定查詢或預存程序而言,資料表變數是否比暫存資料表更有幫助。 沒有找到心中問題的答案?請造訪下列 Microsoft SQL Server 新聞群組:Microsoft SQL Server Newsgroups (http://support.microsoft.com/newsgroups/) 您是否對本文或其他「Microsoft SQL Server 知識庫」文件有任何意見呢?請來信 SQLKB@Microsoft.com (mailto:sqlkb@microsoft.com) 表達您的意見。
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。 | 其他資源 其他支援網站社群立即取得協助文章翻譯
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email
回此頁最上方
