Temporary Tables vs. Table Variables and Their Effect on SQL Server Performance

http://www.sql-server-performance.com/articles/per/temp_tables_vs_variables_p1.aspx

 

照該文的測試 Script 修改如下:

declare @t1 datetime
declare @i int=1,@j int=1,@k bigint=1000
while @i<5
begin
    while @j<@i
    begin
        set @k=@k*10
        set @j+=1
    end
   
    set @t1=getdate()
    exec V2 @k
    select @k,datediff(ms,@t1,getdate())
    set @i+=1
end

在 SQL Server 2008 R2 的執行結果如下

 

  T1 T2 T3 V1 V2
1000 33 26 33 26 16
10000 106 60 93 86 43
100000 906 376 926 740 436
1000000 5523 3056 6320 6736 3230

3 Comments

  1. Jaigi
    Posted 2011 年 04 月 09 日 at 15:25:39 | Permalink | 回覆

    老師,看到這篇文章,想請請教一下,透SSIS內先用SQL指令呼叫ORACLE 程式將資料填入Temporary Tables,然後再用資料流程去Temporary Tables 將資料取出,這樣似乎會失敗呢??因該是Connection session不同導致,不知道這樣方式在SSIS內要如何克服呢??

    • Posted 2011 年 04 月 10 日 at 01:22:05 | Permalink | 回覆

      讓處理的工作使用相同連接,設定連接的 RetainSameConnection 屬性為 true

  2. Jaigi
    Posted 2011 年 04 月 10 日 at 02:25:00 | Permalink | 回覆

    太感謝了~實作成功了

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

%d 位部落客按了讚: