Цитата:
Сообщение от
skuull
Если у вас есть покрывающей индекс и вам нужны только поля из него, то указание списка полей избавить вас от второго обращения к кластерному индексу за всей строкой. Это не изменит мир, но точно будет быстрее. А зачем делать медленнее если можно быстрее?
Потому что указание списка полей может порождать очень интересные ошибки кодирования, потому что где-то ниже по коду обратились к полю, которое забыли прочитать. То есть - список полей полезно указывать только если:
1. Точно есть покрывающий индекс или есть не нужные нам BLOB поля.
2. Этот самый select выполняется в недрах какого-то очень критичного по времени участка (ну например если этот select выполняется 1M раз и из за структур данных мы не можем его в какой-то внешний while select добавить).
Во всех остальных случаях указание списка полей приводит к достаточно неощутимой оптимизации, но при этом повышает вероятность очень неприятных ошибок.