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

я есть таблица размером 1 Тб, 600 м, в которой неверно выбран индексированные столбцы, в частности кластеризованный индекс столбца первичного ключа, который никогда не используется в запросе выбора.

Я хочу удалить кластеризованный индекс из этой строки и создать его на ряде других строк.

Таблица в настоящее время выглядит так:

colA (PK, nvarchar (3)) [кластерный индекс pt b]

colB (PK, bigint) [кластерный индекс pt a]

colC (DateTime) [некластеризованный индекс]

colD (Деньги) [некластеризованный индекс]

colE (бит) [без индекса]

colF (бит) [без индекса]

colG (int) [без индекса]

больше неиндексированных столбцов

Я хотел бы изменить это, чтобы выглядеть так:

colA (PK, nvarchar (3)) [кластерный индекс pt a]

colB (PK, bigint) [некластеризованный индекс]

colC (DateTime) [некластеризованный индекс]

colD (Деньги) [кластерный индекс pt d]

colE (бит) [кластерный индекс pt b]

colF (бит) [кластерный индекс pt c]

colG (int) [кластерный индекс pt e]

больше неиндексированных столбцов

Два вопроса: 1) Как долго вы предполагаете, что это изменение займет (спецификация сервера в конце сообщения). К сожалению, это живая БД, и у меня не может быть простоев без какой-либо идеи о том, как долго она будет работать.

2) Ужасно ли добавлять столько столбцов в кластерный индекс? Обновления почти никогда не выполняются. Существует много вставок и много селекторов, которые всегда используют все предложенные индексированные строки в качестве параметров выбора.

Спецификация сервера: 5 дисков по 15kRPM в RAID 5, MS-SQL Sever 2005 и некоторые биты для их работы.

Ответы на вопрос(8)

Ваш ответ на вопрос