插入临时表需要很长时间

时间:2017-08-10 20:10:07

标签: sql-server tsql

我有以下查询:

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分钟。我以前从未见过这个问题。这是一个技术问题,我们没有足够的磁盘空间,或者它与索引无关,这无关紧要。

0 个答案:

没有答案