SQL Azure - Фрагментация кластерного индекса - PullRequest
0 голосов
/ 11 июня 2019

Я унаследовал базу данных Azure.Я веб-разработчик и имею ограниченный опыт работы с SQL.Сайт работает медленно и, в частности, 2 хранимые процедуры.

Я сделал резервную копию базы данных Azure и импортировал ее на свой локальный компьютер.Я перекомпилировал хранимые процедуры, это не помогло.После дальнейшего изучения хранимые процедуры связываются с 6 таблицами, каждая из которых имеет кластеризованный индекс.

Я проверил свойства кластеризованного индекса и фрагментация находится на уровне 80% и более.

I 'м, предполагая, что индексы необходимо перестроить / реорганизовать.У меня есть несколько вопросов по этому поводу:

  1. Нужно ли отключать веб-сайт?
  2. Нужно ли перестраивать / реорганизовывать индексы в каком-либо конкретном порядке и будут ли потеряны какие-либо данные?
  3. В своей локальной копии я могу щелкнуть правой кнопкой мыши по индексу и щелкнуть по перестроить или реорганизовать, но в Azure я не могу.

1 Ответ

1 голос
/ 11 июня 2019

Чтобы перестроить кластеризованный индекс хранилища столбцов, SQL Server:

  1. Получает эксклюзивную блокировку таблицы или раздела во время перестроения.Данные находятся в автономном режиме и недоступны при перестройке.
  2. Дефрагментирует хранилище столбцов путем физического удаления строк, которые были логически удалены из таблицы;удаленные байты возвращаются на физический носитель.
  3. Считывает все данные из исходного индекса columnstore, включая deltastore.Он объединяет данные в новые группы строк и сжимает группы строк в хранилище столбцов.
  4. Требуется место на физическом носителе для хранения двух копий индекса columnstore во время восстановления.После завершения восстановления SQL Server удаляет исходный кластеризованный индекс хранилища столбцов.
  5. Для таблицы хранилища данных SQL Azure с упорядоченным кластеризованным индексом хранилища столбцов ALTER INDEX REBUILD выполнит повторную сортировку данных.Монитор tempdb во время операций восстановления.Если вам нужно больше места в базе данных tempdb, вы можете увеличить хранилище данных.Уменьшите масштаб после завершения перестройки индекса.

Для получения более подробной информации см .: Восстановление индексов .Он также поддерживается базой данных SQL Azure.

Как указано выше, о ваших вопросах:

1. Нужно ли отключать веб-сайт?

Нет, это не так.

2. Нужно ли перестраивать / реорганизовывать индексы в каком-то конкретном порядке и будут ли потеряны какие-либо данные?

Да, поскольку вы проверили свойства кластеризованного индекса, а фрагментация находится на 80% и выше, мы предлагаем вам перестроить / реорганизовать индексы.Ваши данные не будут потеряны.Вы можете сослаться на этот документ: Перед реорганизацией и перестройкой индексов .

3. В своей локальной копии я могу щелкнуть правой кнопкой мыши индекс и щелкнуть перестроить или реорганизовать, но в Azure я не могу.

База данных SQL Azure поддерживает реорганизацию и перестройку индексов.Прежде чем перестраивать индексы, вы можете сначала протестировать, удалив фрагментацию.

Надеюсь, это поможет.

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