1 臨時(shí)表可以支持事務(wù)級的回滾操作(undo),但不支持前滾操作(redo),表變量不支持事務(wù)級的回滾操作,只是支持語句級的回滾。
2 臨時(shí)表上的統(tǒng)計(jì)信息是健全而可靠的,但是表變量上的統(tǒng)計(jì)信息是不可靠的。
3 臨時(shí)表的編譯閥值非常低,但是表變量的編譯閥值更低。這個(gè)后朋友尋覓經(jīng)過測試,表變量是不存在編譯閥值的。
4 范圍不同。臨時(shí)表為會(huì)話級,表變量為變量級,在自己的代碼聲明區(qū)間內(nèi)有效。
5 表變量只能指定primary key做隱式的索引,但是臨時(shí)表可以顯式創(chuàng)建各種索引。
6 在2000和2005的區(qū)別里,表變量和臨時(shí)表的差異更加顯著。
7 表變量不支持修改自身的定義。
8 修改表變量的語句中,不能使用并行的執(zhí)行計(jì)劃。
在我的實(shí)際編程調(diào)優(yōu)經(jīng)驗(yàn)中,表變量一般只是應(yīng)用于超小型表,比如100行以內(nèi),不然表變量極易引起重編譯和未知的性能問題。
不過具體的行數(shù)可以根據(jù)實(shí)際情況,使用臨時(shí)表和表變量兩種方案對比,哪個(gè)更快再來作出最切合實(shí)際的決定。