Почему удаление индекса приводит к выполнению оператора вставки? - PullRequest
1 голос
/ 08 мая 2019

Я сбрасываю индекс на SQL Server.Это займет много времени, чтобы упасть.Используя sp_whoisactive, я вижу, что мой SPID фактически выполняет инструкцию INSERT для таблицы !?Любая идея, что происходит?

SQL отправляется на сервер:

ALTER TABLE [dbo].[ODS_ORC_Parties] DROP CONSTRAINT [PK_ODS_ORC_Parties]

Код выполняется:

insert [dbo].[ODS_ORC_Parties] select *, %%bmk%% from [dbo].[ODS_ORC_Parties]

Конечно, удаление индекса (а) должно бытьдовольно быстро и (b) не должен выполнять оператор вставки.

[EDIT] Ниже объясняется, что происходит: https://dba.stackexchange.com/questions/157317/what-happens-when-you-delete-a-clustered-index-and-non-clustered-index-once-crea. Короче говоря, когда кластеризованный индекс отбрасывается, все остальные индексы нуждаются вдля восстановления, чтобы он указывал на строки в куче, где они ранее указывали на записи кластеризованного индекса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...