Должен ли я добавить индексы в небольшой стол? - PullRequest
5 голосов
/ 05 апреля 2011

Есть ли причина добавлять индексы в таблицу с несколькими (менее 10) элементами? Он часто используется в соединениях, но я не уверен, что индекс такой маленькой таблицы увеличивает его производительность или уменьшается.

Редактировать: строки в таблице довольно маленькие: 7 столбцов, общий размер которых меньше 500 байт, поэтому я думаю, что они могут храниться в памяти сервера (это ответ Пола Санвальда)

Ответы [ 4 ]

2 голосов
/ 05 апреля 2011

Маловероятно, что таблица такого размера будет когда-либо использовать индекс.Если таблица будет стабильной по размеру и всегда будет маленькой, я бы не стал добавлять индексы.

From Books Online:

Индексация небольших таблиц может быть неоптимальной, поскольку она может приниматьОптимизатор запросов дольше обходит индекс поиска данных, чем выполняет простое сканирование таблицы.Таким образом, индексы в небольших таблицах никогда не могут использоваться, но все равно должны поддерживаться при изменении данных в таблице.

Так что, вероятно, будет плохой идеей индексировать небольшие таблицы.

2 голосов
/ 05 апреля 2011

Как и во всех вопросах производительности, ответ таков: создайте тест производительности и измерьте результаты.

В противном случае вероятность того, что ответ неверен, составляет 90%.

0 голосов
/ 05 апреля 2011

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

0 голосов
/ 05 апреля 2011

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

Sql Server Clustered Indexes

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