臨時表和表變數的區別

2022-02-18 14:23:41 字數 491 閱讀 1049

1 臨時表可以支援事務級的回滾操作(undo),但不支援前滾操作(redo),表變數不支援事務級的回滾操作,只是支援語句級的回滾。

2 臨時表上的統計資訊是健全而可靠的,但是表變數上的統計資訊是不可靠的。

3 臨時表的編譯閥值非常低,但是表變數的編譯閥值更低。這個後朋友尋覓經過測試,表變數是不存在編譯閥值的。

4 範圍不同。臨時表為會話級,表變數為變數級,在自己的**宣告區間內有效。

5 表變數只能指定primary key做隱式的索引,但是臨時表可以顯式建立各種索引。

6 在2000和2005的區別裡,表變數和臨時表的差異更加顯著。

7 表變數不支援修改自身的定義。

8 修改表變數的語句中,不能使用並行的執行計畫。

在我的實際程式設計調優經驗中,表變數一般只是應用於超小型表,比如100行以內,不然表變數極易引起重編譯和未知的效能問題。

不過具體的行數可以根據實際情況,使用臨時表和表變數兩種方案對比,哪個更快再來作出最切合實際的決定。

臨時表和表變數的區別

在實際使用的時候,我們如何靈活的在儲存過程中運用它們,雖然它們實現的功能基本上是一樣的,可如何在乙個儲存過程中有時候去使用臨時表而不使用表變數,有時候去使用表變數而不使用臨時表呢?臨時表 臨時表與永久表相似,只是它的建立是在tempdb中,它只有在乙個資料庫連線結束後或者由sql命令drop掉,才會...

SQL 表變數和臨時表

sql 表變數和臨時表 表變數 儲存在記憶體中,作用域是指令碼的執行過程中,指令碼執行完畢之後就會釋放記憶體,適合短時間內儲存資料量小的資料集。優點 使用靈活,使用完之後立即釋放,不占用物理儲存空間 缺點 只適合較小資料量的暫時儲存,不能建索引,資料量稍大時查詢效率慢,佔記憶體 使用臨時表和表變數的...

SQL臨時表和表變數

表變數 儲存在記憶體中,作用域是指令碼的執行過程中,指令碼執行完畢之後就會釋放記憶體,適合短時間內儲存資料量小的資料集。優點 使用靈活,使用完之後立即釋放,不占用物理儲存空間 缺點 只適合較小資料量的暫時儲存,不能建索引 資料量稍大時查詢效率慢,佔記憶體 使用臨時表和表變數的資料量大小沒有具體的臨界...