Задать вопрос

Кластеризованный или некластеризованный индекс?

Речь о Microsoft SQL Server. Есть таблица с логами входа:


[time] [datetime] NOT NULL,

[account] [varchar](14) NOT NULL,

[ip] [varchar](15) NOT NULL,


Изменить нельзя (нельзя id вместо имени для account, нельзя бинарный формат для ip). Часто используется выборка по полю account, поэтому хочу добавить индекс. Какой тип индекса лучше использовать в данном случае? Кластеризованный или некластеризованный?
  • Вопрос задан
  • 6374 просмотра
Подписаться 4 Оценить 3 комментария
Пригласить эксперта
Ответы на вопрос 2
@ztxn
Наверняка отбор по экаунту производится с сортировкой по time и отсечкой по time либо же top, либо же по диапазону time. В этом случае, мне думается, будет уместен составной индекс по паре (account,time)

Вот кластеризованный — ли, берут меня сомнения. Нужны дли вам на столько дополнительные пять копеек при отборе, чтобы можно было чуть пожертвовать производитеьностью на вставке? Полагаю — врядли. Скорость вставки, мне думается, тут весьма критична будет.
Ответ написан
Комментировать
@ztxn
>>Стоит ли в этом случае делает индекс составным и кластеризованным?
Составной индекс по паре (time, account), для отбора по экаунту наверняка вам будет бесполезен. А для отбора по экаунту и диапазону времени (или с сортировкой по времени и отсечкой по top/значению времени), он будет существенно менее эффективен нежели по паре (account, time)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы