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
結果:
結論:
處理小資料量作業並重複使用的資料表值參數看來會因為快取(from temporary table)而獲益,
而第一次資料表值參數花費較多時間,由於資料表值參數存在記憶體中,
個人覺得大多花費在初始劃分記憶體區塊上(VM測試),
相對temp-table是因為tempdb早已初始並分配好Disk I/O,故在第一次兩者才會有那麼大的差距,
但在後面兩次的測試中,就可以感受到資料表值參數的執行效能了。