Добавление индексов часто предлагается здесь для устранения проблем с производительностью.
(Я говорю только о чтении и запросе, мы все знаем, что индексы могут замедлять запись).
Я пробовал это средство много раз, на протяжении многих лет, как на DB2, так и на MSSQL, и результат был неизменно разочаровывающим.
Я обнаружил, что независимо от того, насколько "очевидно", что индекс улучшит ситуацию, оказалось, что оптимизатор запросов был более умным, и мой хитрый индекс почти всегда делал хуже.
Я должен указать, что мой опыт связан главным образом с маленькими таблицами (< 100 000 рядов).
Может ли кто-нибудь дать некоторые приблизительные рекомендации по выбору индексирования?
Правильным ответом будет список рекомендаций, например:
- Никогда/всегда индексируйте таблицу с менее чем/больше, чем записи NNNN
- Никогда/всегда рассматривайте индексы в многополюсных ключах
- Никогда/всегда используйте кластерные индексы
- Никогда/всегда используйте больше, чем индексы NNN в одной таблице.
- Никогда/всегда добавляйте индекс, когда [какое-то магическое условие, о котором я умираю, чтобы узнать]
В идеале ответ даст несколько поучительных примеров.