SQL Azure - SSMS - при получении результатов с сервера произошла ошибка транспортного уровня.

Я пытаюсь восстановить индекс для таблицы с 9,1 миллионами строк. В настоящее время фрагментация составляет 88%.

Изменить индекс [MYINDEX] в [MYTABLE] REBUILD

Через несколько минут из SSMS я получаю следующее ...

Msg 10054, уровень 20, состояние 0, строка 0 Произошла ошибка транспортного уровня при получении результатов от сервера. (поставщик: поставщик TCP, ошибка: 0 - существующее соединение было принудительно закрыто удаленным узлом.)

Через несколько минут с портала управления я получаю следующее ...

Не удалось выполнить команду Transact-Sql. Не удалось прочитать состояние ответа.

Не уверен, что попробовать на этом этапе.


person scutch    schedule 22.06.2014    source источник
comment
Закончился удалением некоторых других индексов в таблице, затем использованием Rebuild, а затем добавлением индексов обратно. Это позволило мне успешно перестроить индекс. Я действительно не чувствую, что решил проблему, просто обошел стороной то, что было большой операцией.   -  person scutch    schedule 23.06.2014
comment
Вы говорите, что другие индексы в таблице влияют на перестроение индекса, указанного при перестроении? Не знал этого ...   -  person dark_perfect    schedule 15.10.2014


Ответы (1)


Вместо этого вы можете попробовать CREATE INDEX ... WITH DROP_EXISTING. Просто создайте скрипт для существующего индекса как CREATE и добавьте параметр DROP_EXISTING, как в примере ниже. Это будет более эффективным, поскольку использует существующую структуру индекса, избегая, таким образом, сканирования и сортировки кластерного индекса. Этот метод уменьшит фрагментацию, но не решит проблему повреждения индекса, как это может сделать REBUILD.

CREATE INDEX [MYINDEX] ON MYTABLE
(
    [MYCOLUMN] ASC
)WITH (DROP_EXISTING = ON);
person Dan Guzman    schedule 22.06.2014
comment
Спасибо за ответ. Это первичный ключ, и я получил сообщение о том, что он не может создать индекс, потому что определение было другим. Извините, у меня нет точного сообщения передо мной. Закончился удалением некоторых других индексов в таблице, затем использованием Rebuild, а затем добавлением индексов обратно. Это сработало. - person scutch; 23.06.2014
comment
Вам необходимо добавить ключевое слово UNIQUE, чтобы перестроить индекс первичного ключа с синтаксисом CREATE INDEX, и указать (или опустить) CLUSTERED в зависимости от существующего типа индекса первичного ключа. - person Dan Guzman; 24.06.2014