Крайний левый столбец Многостолбцового индекса, не функционирующего как индекс отдельного столбца

Могло быть возможно, что эти max user processes (-u) 1024 является слишком низким.

Помнят, что процессы и потоки рассчитывают вместе. Можно использовать ps -eLF | grep adtech | wc -l для показа текущего значения.

0
задан 19 January 2011 в 21:00
2 ответа

Если SQL Server будет думать, что будет менее дорого использовать некластерный индекс при поиске крайнего левого столбца затем, это будет. Проблема в Вашем случае (я предполагаю) состоит в том, что Вы делаете ВЫБОР * вместо того, чтобы указать только столбцы, которые Вы хотите назад. При определении столбцов, которые не являются в некластерном индексе затем, SQL Server должен будет сделать ключевой поиск после того, как индекс будет искать и возвращается к кластерному индексу (или "куча", если нет никакого кластерного индекса) получить остальную часть столбцов.

Если Вам только нужны несколько столбцов, тогда указывают их и добавляют их как включенные столбцы в существующем индексе, и SQL Server начнет использовать индекс.

1
ответ дан 4 December 2019 в 22:37

Сколько строк находится в таблице? SQL Server иногда не потрудится использовать индекс, если таблица будет достаточно маленькой, так как издержки поисков RID/закладки от некластеризованного индекса могли бы перевесить увеличение производительности предотвращения сканирования таблицы. Пока Вы держите статистику в курсе по таблице, затем SQL Server должен обратиться к индексу, когда это считает это необходимым.

0
ответ дан 4 December 2019 в 22:37

Теги

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