DROP Table занимает много времени на сервере sql - PullRequest
0 голосов
/ 26 февраля 2019

У нас есть база данных с таблицами, которые имеют зашифрованные данные и имеют кластерные индексы хранилища столбцов с 1000 фиксированных разделов.Все таблицы имеют одинаковую структуру.Зашифрованные столбцы имеют тип Varbinary.

Мне нужно предоставить базе данных подмножество таблиц в предыдущей базе данных.

Для этого мы берем резервную копию, восстанавливаем, находим, какие таблицы не нужны,и удалите эти таблицы.

Каждая таблица имеет размер около 200 МБ после сжатия.

Проблема в том, что таблица DROP отнимает много времени.Немногие столы занимают 3-4 секунды, чтобы упасть.Но некоторые столы занимают 20 минут, чтобы уронить, это вызывает много времени.Для отбрасывания 1000 таблиц требуется более 18 часов.

Используемая нами машина имеет очень высокую конфигурацию 128 ГБ ОЗУ с 16 ядрами, доступными для SQL Server.

Мы пробовали такие способы, какотключение кластерного столбчатого индекса, усечение таблицы перед удалением, но это не помогло.Мы бросаем столы порциями, даже это не помогает.Также мы не можем объединить разделы, поскольку таблицы, которые должны остаться, будут использовать ту же схему.

Это не действие администратора, мы предоставляем экспорт в формате .mdf.И для этого мы придерживаемся двух подходов: для перемещения меньшего набора данных мы создаем пустую БД и записываем / вставляем необходимые записи, а когда приходится перемещать большую часть, мы делаем резервное восстановление и удаляем ненужные таблицы.

Нам нужно понять, почему это занимает так много времени.Можете ли вы помочь нам.

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