久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

SQL Sever表變量和臨時表的比較

 Jeln 2011-05-10
臨時表:
CREATE TABLE #temp( id int NOT NULL, name varchar(100))
表變量:
DECLARE @temp table ( id int NOT NULL, name varchar(100))

不同:
1. 表變量脫離了事務(wù)機制的范圍,。rollback對表變量的數(shù)據(jù)不起作用,。
2. 主要的不同是任何一個使用臨時表的存儲過程都不會被預(yù)編譯,,然而使用表變量的存儲過程的執(zhí)行計劃可以預(yù)先靜態(tài)的編譯。預(yù)編譯一個腳本的主要好處
在于加快了執(zhí)行的速度,。這個好處對于長的存儲過程更加顯著,,因為對它來說重新編譯代價太高。
3. 表變量僅存在于那些變量能存在的相同范圍內(nèi),。它在內(nèi)部存儲過程和exec(string)語句里是不可見的,。
4. 使用表變量主要需要考慮的就是應(yīng)用程序?qū)?nèi)存的壓力,如果代碼的運行實例很多,,就要特別注意內(nèi)存變量對內(nèi)存的消耗,。我們對于較小的數(shù)據(jù)或者是通
過計算出來的推薦使用表變量。如果數(shù)據(jù)的結(jié)果比較大,,在代碼中用于臨時計算,,在選取的時候沒有什么分組的聚合,就可以考慮使用表變量,。
5. 一般對于大的數(shù)據(jù)結(jié)果,,或者因為統(tǒng)計出來的數(shù)據(jù)為了便于更好的優(yōu)化,我們就推薦使用SQL Server臨時表,,同時還可以創(chuàng)建索引,,由于臨時表是存放
在Tempdb中,一般默認分配的空間很少,,需要對tempdb進行調(diào)優(yōu),,增大其存儲的空間。
6. 函數(shù)中不能支持SQL Server臨時表,。這是由于函數(shù)不能對函數(shù)作用域外部的資源狀態(tài)造成永久性的更改,,在SQLServer中也稱為副作用(sideeffect)。
不過如果在函數(shù)中使用大型的臨時結(jié)果集是不推薦的,,因為如果將這樣的函數(shù)放置到一個查詢中會造成很明顯的性能問題,,因此這種情況一般都采用存儲過程之類的批處理腳本。
7. 存儲過程不接受表類型的參數(shù),。
8. 表變量雖然不支持索引,,但是表變量支持主鍵阿,所以可以利用主鍵來替代索引,。 9. 由于表變量不支持統(tǒng)計數(shù)據(jù),,因此在一個存儲過程中使用表變量可以減少由于數(shù)據(jù)變化而導(dǎo)致的重新編譯問題。 10.表變量同時也不支持并行執(zhí)行計劃,,因此對于大型的臨時結(jié)果集,,表變量也不是一個好的選擇





    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多