資料表值參數和暫存資料表效能測試 (table-parameter & temporary-table Performance Test)

SQL# 資料表值參數和暫存資料表效能測試 * table-parameter & temporary-table Performance Test

動作:分別對資料表值參數和暫存資料表執行三次相同作業(資料量<=1000)。

by table-parameter

SET STATISTICS TIME ON
DECLARE @mytmp TABLE
(
id int,
name nvarchar(10),
email nvarchar(100)
)
 
INSERT INTO @mytmp
SELECT * FROM dbo.userd
SET STATISTICS TIME OFF

by temporary-table

 

SET STATISTICS TIME ON
create table #mytmp
(
id int,
name nvarchar(10),
email nvarchar(100)
)
 
INSERT INTO #mytmp
SELECT * FROM dbo.userd
 
SET STATISTICS TIME OFF

結果:

image_thumb_19

 

結論:

處理小資料量作業並重複使用的資料表值參數看來會因為快取(from temporary table)而獲益,

而第一次資料表值參數花費較多時間,由於資料表值參數存在記憶體中,

個人覺得大多花費在初始劃分記憶體區塊上(VM測試),

相對temp-table是因為tempdb早已初始並分配好Disk I/O,故在第一次兩者才會有那麼大的差距,

但在後面兩次的測試中,就可以感受到資料表值參數的執行效能了。