Я столкнулся с проблемой производительности из-за инструкции «Вставить в» в sql. Я использую CTE для выбора данных из нескольких таблиц и вставки в другую таблицу. До вчерашнего дня он работал нормально. Выбор занимает менее минуты, чтобы получить данные, которые вставляются в вечность. Может кто-нибудь, пожалуйста, помогите мне понять, что я делаю неправильно. Любая помощь высоко ценится. Благодарю.SQL-вставка в использование CTE
Вот мой код:
Я использую этот запрос в качестве ИП. Я пытаюсь загрузить 220K записей в таблицу записей 1.5M.
;with CTE_A
AS
(
SELECT A1, A2,...
FROM dbo.A with (nolock)
WHERE A1 = <some condition>
GROUP BY a.A1,a.A2 , a.A3
), CTE_C as
(
SELECT C1, C2,....
FROM dbo.B with (nolock)
WHERE a.C1 = <some condition>
GROUP BY a.c1,a.C2 , a.C3
)
INSERT INTO [dbo].MainTable
SELECT
A1, A2, A3 , C1, C2, C3
FROM
CTE_A ta with (nolock)
LEFT OUTER JOIN
CTE_C tc with (nolock) ON ta.a1 = tc.a1 and ta.b1 = tc.b1 and ta.c1 = tc.c1
LEFT OUTER JOIN
othertable bs with (nolock) ON usd_bs.c = s.c
AND (A1 BETWEEN bs.a1 AND bs.a1)
AND bs.c1 = 1
Вы действительно должны дать больше информации. В его нынешнем состоянии кому-то нужен кристальный шар. –
Обновите свой вопрос по вашему запросу. –
Я добавил более подробную информацию к вопросам. – lch