Я хотел проверить сжатие индекса (для базы данных на базе данных SQL Azure на Compat 140) и просто ленив и использовал SSMS 18.3.1, развернув таблицу, развернув индексы, щелкнув правой кнопкой мыши по индексу и выбравХранение -> Управление сжатием. Я сразу же получаю всплывающее окно с надписью «Невозможно отобразить запрошенное диалоговое окно. Невозможно выполнить запрошенную команду. В настоящее время эти столбцы не имеют уникальных значений. (System.Data)» *
Есть шесть других индексов для этогоТаблица, которая все отлично работает, используя этот метод. Я написал сценарий для индекса, удалил его и пересоздал с тем же эффектом. Из кода создания вы можете видеть, что там нет ничего особенного, даже уникального.
Это код создания индекса, только что очищенный от реальных имен, в противном случае он полностью не поврежден.
CREATE NONCLUSTERED INDEX [IX_IndexName] ON [dbo]. [Таблица] ([ID] ASC, [Тип] ASC) ВКЛЮЧИТЬ ([OtherColumns]) С (STATISTICS_NORECOMPUTE = OFF, DROP_EXISTING = OFF, ONLINE = OFF, DATA_COMPRESSION = PAGE) ON [ОСНОВНОЙ] GO
Кроме того, у нас есть код, который мы запускаем, чтобы найти любой не-Кластерный индекс не сжат, но кластерный индекс сжат. Он отлично работает, за исключением того же индекса ... где он показывает его как несжатый, даже если вы создаете его с помощью сжатия PAGE, и когда вы возвращаете его обратно в сценарий, он показывает, что это есть в операторе WITH. Очень странно.