2017-08-10 8 views
0

に挿入するのに長い時間がかかる:それは私が次のクエリを持つ一時テーブル

if object_id('tempdb..#tAJ88') is not null 
drop table #tAJ88 



create table #tAJ88 (
     conv_raw_AJ88_ECO_key    int, 
     case_id           numeric(14,0), 
     account_key        int, 
     account_period_key    int, 
     aj_number        varchar(25), 
     county_code        varchar(25) 
) 




insert into #tAJ88(conv_raw_AJ88_ECO_key,account_key,account_period_key,aj_number,county_code) 
select ac.conv_raw_AJ88_ECO_key,a.account_key, ap.account_period_key, ac.aj_number, ac.county_code 
from [Conv].[dbo].[conv_raw_AJ88_ECO] ac 
inner join [IT].[dbo].[entity_identifier] ei on ei.identifier_value = ac.account_number 
                             and ei.identifier_type_key = @MITS 
inner join [IT].[dbo].[account_x_entity_id] axe on axe.entity_identifier_key = ei.entity_identifier_key 
inner join [IT].[dbo].[account] a on a.account_key = axe.account_key 
                         and a.account_type_key = (select account_type_key from [IT].[dbo].[r_account_type] where code = ac.tax_type) 
inner join [IT].[dbo].[account_period] ap on ap.account_key = a.account_key 
                              and cnsd.NEXT_STEP_NAME not in ('A','B') 
where (convert(datetime, substring(ac.periods,4,4) + '-' + substring(ac.periods,1,2) + '-01') >= ap.period_begin_dt and convert(datetime, substring(ac.periods,4,4) + '-' + substring(ac.periods,1,2) + '-01') <= ap.period_end_dt) 
and len(rtrim(substring(ac.periods,4,4))) = 4 

クエリは、SELECT文からデータを挿入します。 select文の実行には1秒しかかからず、select文には1500レコードしか表示されません。ただし、一時表に挿入しようとすると、10分以上かかります。私は前にこの問題を見たことがない。これは技術的な問題で、十分なディスク容量がない場合や、重要ではないインデックス作成に関連する場合があります。

+2

クエリで1500を超える結果が返されることはありますが、実行するとSQLクライアントによって制限が追加されますか? – Tobb

+2

2つのクエリのクエリ実行計画を見てください。それ自体で選択するもの。そして、挿入のためのもの...選択してください。 –

+1

Kendra Little at sqlworkbooks.comは数週間前にストアドプロシージャの同じスコープ内で作成された一時テーブルの更新が挿入されたすべての行に対してディスクIOアクセスを行うMSSQLの問題を強調したウェブキャストを持っていました。あなたは特に言いませんでしたが、これをストアドプロシージャとして実行している場合、スコープを変更してこの大きな減速問題を回避するために、insertをsp_executesqlコマンドにラップすることができる修正プログラムの概要を説明しました。 –

答えて

関連する問題