Предотвращает ли создание некластеризованного индекса в таблице SQL Server 2005 выбор? - PullRequest
9 голосов
/ 16 декабря 2009

Я хотел бы создать индекс для имеющегося у меня представления, но мне нужно убедиться, что данные все еще могут быть прочитаны во время создания индекса. Я читал статью , в которой предлагалось, чтобы при создании некластеризованного индекса данные оставались читаемыми, если вы указали опцию ONLINE = ON (пример ниже):

CREATE UNIQUE CLUSTERED INDEX CLUST_IDX_SQLTIPS
ON SQLTips (tip) with (ONLINE=ON) 

Я правильно понимаю? Есть ли потенциальные проблемы, о которых мне следует знать, прежде чем создавать индексы для представления, которое должно быть читаемым при создании индекса?

Ответы [ 2 ]

14 голосов
/ 16 декабря 2009

Онлайн создание и перестройка индекса доступны только в Enterprise Edition. См. Как работают онлайн-операции с индексами и Рекомендации по выполнению онлайн-операций с индексами .

Существуют некоторые ограничения, наиболее заметными из которых являются:

  • Кластерный индекс должен быть создан / перестроен в автономном режиме, если он содержит какие-либо поля BLOB (изображение, текст, текст, varchar (max), nvarchar (max), varbinary (max) и xml).
  • Первоначальный кластерный индекс в представлении должен быть создан в автономном режиме.

Вы должны убедиться, что в вашей базе данных достаточно места для выполнения операции индексирования в сети, поскольку для этого требуется примерно в 1,5 раза больше размера таблицы при добавлении к текущему размеру. Во время создания индекса в сети таблица дважды существует в базе данных, поэтому требуется дополнительное пространство.

Поскольку ваше дело относится к категории исключено (начальный кластеризованный индекс в представлении), вам не нужно беспокоиться об онлайн-индексах. Вы должны использовать автономную операцию индексации.

Кстати, вы также должны знать, что индексированные представления учитываются оптимизатором только в Enterprise Edition. В более низких выпусках необходимо указать предложение NOEXPAND в представлении, чтобы использовать возможный индекс в представлении.

2 голосов
/ 16 декабря 2009

В статьях MSDN содержится более подробная информация о CREATE INDEX и операциях с индексами онлайн , в которых содержится много информации.

С этим не должно быть проблем, если вы выполняете только SELECT и UPDATE. Не очень уверен насчет резервных копий, может лучше попробовать на тестовой системе и посмотреть?

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