1、變量表:
declare @SDT datetime,@EDT datetime --定義執行開始、結束時間
set @SDT=getdate()
--定義變量表
declare @t table
(
ID int,
Myfield nvarchar(50),
InputDT datetime
)
--插入數據到變量表
insert @t select top 10000 ID,Myfield,getdate() from 表
set @EDT=getdate()
select DATEDIFF(ms,@SDT,@EDT) AS Diffms --開始、結束時間間隔
2、臨時表
declare @SDT datetime,@EDT datetime
set @SDT=getdate()
--創建臨時表:
create table #t
(
ID int,
Myfield nvarchar(50),
InputDT datetime
)
insert #t select top 10000 ID,Myfield,getdate() from 表
select * from #t
set @EDT=getdate()
select DATEDIFF(ms,@SDT,@EDT) AS DiffNS
drop table #t
不創建臨時表直接插入
declare @SDT datetime,@EDT datetime
set @SDT=getdate()
select top 10000 ID,Myfield,getdate() into #t from 表
select * from #t
set @EDT=getdate()
select DATEDIFF(ms,@SDT,@EDT) AS DiffNS
drop table #t
總結:數據量少的時[總行數小于1000],使用變量表
數據量大時(行數>10萬),使用創建臨時表再插入。
數據量一般時(10萬>行數>1萬),使用不建立臨時表直接插入。
以上測試在各機器上結果可能不同。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。