Я обновляю свою тестовую базу данных до версии для разработчиков 2017 года. Теперь у меня есть проблема с моей функцией табличного значения. вставка в выбранную производительность очень и очень медленная для записи вставки 4000-х.
declare @dateStart date = '4-Jul-2019'
,@dateEnd date = '4-Jul-2019'
declare @ntnOnDate table
(
[NTM ID] char(8)
,[NTM Type] char(3) -- Posible Value: NTM, UPR, SOL
,primary key clustered([NTM ID], [NTM Type])
)
declare @finishedNTM table
(
[NTM ID] char(8)
,[NTM Type] char(3)
,Dept char(3)
,[Model Number] char(4)
,[Shoes Type] int
,[Shoes Version] int
,[Size] varchar(5)
,[Pairs] int not null
--, primary key clustered ([NTM ID], [NTM Type],Dept, [Model Number], [Shoes Type], [Shoes Version], [Size])
)
insert into @ntnOnDate
--- select statement (Only 16 record) --
insert into @finishedNTM (
[NTM ID]
, [NTM Type]
, Dept
, [Model Number]
, [Shoes Type]
, [Shoes Version]
, [Size]
, pairs
)
select
a.[TSW ID] as [NTM ID]
,'NTM' as [NTM Type]
,a.[From Department] as [Dept]
,b.[Model Number]
,b.[Shoes Type]
,b.[Shoes Version]
,b.Size
,sum(b.Pairs) as Pairs
from [TSW Master] a
inner join [TSW Details] b
on a.[TSW ID] = b.[TSW ID]
and a.Issue = b.Issue
and a.[From Department] = b.[From Department]
and a.[To Department] = b.[To Department]
--inner join @ntnOnDate c
-- on a.[TSW ID] = c.[NTM ID]
where a.Executed = 1
and a.Accepted = 1
and a.[From Department] <> '210'
--and c.[NTM Type] = 'NTM'
and a.[TSW ID] in (select x.[NTM ID] from @ntnOnDate x where x.[NTM Type] = 'NTM')
group by
a.[TSW ID]
,a.[From Department]
,b.[Model Number]
,b.[Shoes Type]
,b.[Shoes Version]
,b.Size
Странно, когда я использую «select top 4462» (количество записей в операторе select равно 4462) с оператором select, вставка завершится через 2 секунды.
Может ли кто-нибудь мне помочь? Заранее спасибо.
A'an