新聞中心
在SQL數(shù)據(jù)庫中,必須使用表變量來代替臨時(shí)表嗎?答案取決于三個(gè)因素:插入到表中的行數(shù)、從中保存查詢的重新編譯的次數(shù)、以及查詢類型及其對性能的指數(shù)和統(tǒng)計(jì)信息的依賴性。

在鄠邑等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需開發(fā)網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷,外貿(mào)網(wǎng)站制作,鄠邑網(wǎng)站建設(shè)費(fèi)用合理。
在某些情況下,可將一個(gè)具有臨時(shí)表的存儲(chǔ)過程拆分為多個(gè)較小的存儲(chǔ)過程,以便在較小的單元上進(jìn)行重新編譯。
通常情況下,應(yīng)盡量使用表變量,除非數(shù)據(jù)量非常大并且需要重復(fù)使用表。在這種情況下,可以在臨時(shí)表上創(chuàng)建索引以提高查詢性能。但是,各種方案可能互不相同。Microsoft 建議您做一個(gè)測試,來驗(yàn)證表變量對于特定的查詢或存儲(chǔ)過程是否比臨時(shí)表更有效。
============================
declare @temp table
(
[id] int IDENTITY(1,1),
[Name] varchar(10)
)
declare @tempId int,@tempName varchar(10)
insert into @temp values('a')
insert into @temp values('b')
insert into @temp values('c')
insert into @temp values('d')
insert into @temp values('e')
--select * from @temp
WHILE EXISTS(select [id] from @temp)
begin
SET ROWCOUNT 1
select @tempId = [id],@tempName=[Name] from @temp
SET ROWCOUNT 0
delete from @temp where [id] = @tempId
print 'Name:----'+@tempName
end
【編輯推薦】
SQL中表變量的不足
詳解SQL中循環(huán)結(jié)構(gòu)的使用
SQL循環(huán)執(zhí)行while控制
SQL中游標(biāo)嵌套循環(huán)的示例
SQL循環(huán)語句示例
網(wǎng)頁標(biāo)題:SQL中表變量是否必須替代臨時(shí)表
分享路徑:http://www.dlmjj.cn/article/dpgohds.html


咨詢
建站咨詢
