Мне нужна твоя помощь.Я работаю над проектом по созданию хранилища данных на сервере SQL Azure. Я пытаюсь загрузить около 31 миллиона строк в таблицу фактов
Все таблицы в запросах имеют индекс columnstore.Это хранимая процедура, которую я создал для этого.
CREATE PROCEDURE [Dwh].[AlimFctSurvey]
AS
BEGIN
SET NOCOUNT ON;
DECLARE @StartDate Date = (SELECT (ISNULL (MAX(LoadingDate), ( SELECT MIN (DATE) from [Dwh].[DimDate] )) ) FROM [Dwh].[FactSurvey] )
INSERT INTO [Dwh].[FactSurvey] with (TABLOCK)
([IdDate]
,[IdRespondant]
,[IdResponse]
,[IdCountry]
, IdModule
,[Count]
,[LoadingDate]
, LineId
, FileId
)
SELECT ISNULL (B.IdDate, -1)IdDate
, ISNULL (C.IdRespondant, -1)IdRespondant
, ISNULL (E.IdResponse, -1)IdResponse
, ISNULL (D.IdCountry, -1)IdCountry
, ISNULL (F.IdModule, -1)IdModule
, [Count] = 1
, Loadingdate = Getdate()
, LineId
, FileId
FROM [Ods].[Sas_Output] A
LEFT JOIN [Dwh].[DimDate] B ON B.IdDate = 100 * cast (A.Mois as int) + 1
LEFT JOIN [Dwh].[DimRespondant] C ON A.[Respondant_FunctionnalKey]= C.Respondant_FunctionnalKey
LEFT JOIN [Dwh].[DimCountry] D ON A.Country_FunctionnalKey= D.Country_FunctionnalKey
LEFT JOIN Dwh.DimResponse E on E.Response_FunctionnalKey = a.Response
LEFT JOIN Dwh.DimModule F on F.Module_FunctionnalKey = a.Module
WHERE
1=1
and A.LoadingDate > @StartDate
AND FILETYPE = 'MAIN'
AND isnull ([FLAG_RA1A], 0) = 0
AND MOIS <= '201803'
END
Я не знаю, почему запрос выполняется часами без загрузки таблицы.