как эффективно изменить индекс - PullRequest
1 голос
/ 20 апреля 2010

Привет всем,

проблема: я ищу правильный способ преобразования индекса из кластеризованного в некластеризованный

Описание: у меня есть таблица как в sybase db:

dbo.UserLog
------------------------
Id | UserId |time | ....
------------------------

Это хеш-код, разделенный по идентификатору пользователя.

В настоящее время имеет 2 индекса

UserId : non-clustered
time: clustered

В этой таблице около 20 миллионов записей.

Теперь я хочу сделать UserId как кластеризованный индекс, а время - как некластеризованный индекс.

Правильно ли изменить индекс пользователя, чтобы он изменился с кластеризованного на некластеризованный? или я сбрасываю индекс и воссоздаю. Имеет ли это значение тот факт, что userId используется в хеш-секционировании?

Мне кажется, что alter способ пойти, но я еще не пробовал это.

1 Ответ

1 голос
/ 20 апреля 2010

Просто бросьте оба, а затем воссоздайте их так, как вы хотите. Так как вы вносите такие серьезные изменения в каждый индекс, я уверен, что механизм БД просто удаляет их и создает, когда вы все равно запускаете alter. Если вы беспокоитесь о the fact that userId is used in hash partitioning, то создание каждого нового индекса будет наиболее безопасным для меня, но я уверен, что Sybase не испортится, если вы используете alter.

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