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

在鄠邑等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網(wǎng)站制作、成都網(wǎng)站建設、外貿(mào)營銷網(wǎng)站建設 網(wǎng)站設計制作按需開發(fā)網(wǎng)站,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站建設,成都全網(wǎng)營銷,外貿(mào)網(wǎng)站制作,鄠邑網(wǎng)站建設費用合理。
在某些情況下,可將一個具有臨時表的存儲過程拆分為多個較小的存儲過程,以便在較小的單元上進行重新編譯。
通常情況下,應盡量使用表變量,除非數(shù)據(jù)量非常大并且需要重復使用表。在這種情況下,可以在臨時表上創(chuàng)建索引以提高查詢性能。但是,各種方案可能互不相同。Microsoft 建議您做一個測試,來驗證表變量對于特定的查詢或存儲過程是否比臨時表更有效。
============================
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)結構的使用
SQL循環(huán)執(zhí)行while控制
SQL中游標嵌套循環(huán)的示例
SQL循環(huán)語句示例
當前題目:SQL中表變量是否必須替代臨時表
本文鏈接:http://www.5511xx.com/article/dpgohds.html


咨詢
建站咨詢
