自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL中表變量是否必須替代臨時表

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

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

在某些情況下,可將一個具有臨時表的存儲過程拆分為多個較小的存儲過程,以便在較小的單元上進行重新編譯。

通常情況下,應(yīng)盡量使用表變量,除非數(shù)據(jù)量非常大并且需要重復(fù)使用表。在這種情況下,可以在臨時表上創(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)結(jié)構(gòu)的使用

SQL循環(huán)執(zhí)行while控制

SQL中游標嵌套循環(huán)的示例

SQL循環(huán)語句示例

責任編輯:段燃 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-07-22 16:02:29

2010-09-16 15:10:48

SQL Server表

2011-03-29 13:22:07

SQL Server臨時表表變量

2010-09-08 17:29:37

SQL表變量

2010-09-16 15:03:10

SQL Server臨

2010-09-16 17:56:31

SQL server臨

2010-07-23 13:42:11

SQL Server臨

2010-07-26 13:56:38

SQL Server臨

2010-10-19 14:45:01

SQL SERVER臨

2011-09-02 14:45:43

Oracle臨時表SQL Server臨

2021-01-18 05:23:14

SQL 排序Server

2010-07-08 14:42:34

SQL Server臨

2010-10-19 14:56:05

sql server臨

2010-10-19 15:25:05

Sql Server臨

2014-09-25 09:43:29

臨時表表變量SQL

2010-09-02 16:28:03

SQL刪除

2010-07-01 14:46:10

SQL Server臨

2010-11-12 13:27:13

動態(tài)sql

2010-05-19 09:01:14

MySQL臨時表

2010-07-22 15:56:04

SQL Server臨
點贊
收藏

51CTO技術(shù)棧公眾號