У меня есть таблица, из которой в 99% случаев я извлекаю только 1 строку. Поиск выполняется с использованием кластерного индекса (длина которого составляет всего 20 байт). Однако размер моей строки составляет 800 байт (фиксированный размер). Как вы думаете, такой размер строки является проблемой в данном сценарии?
Если это имеет значение - эта таблица будет содержать десятки миллионов строк.
Размер строки не будет иметь большого значения, если вы будете каждый раз запрашивать этот индекс. В структуре индекса будет производиться поиск одной строки, и последняя запись индекса будет указывать непосредственно на блок данных, содержащий эту строку.
Если вы регулярно запрашиваете только часть строки, то добавление дополнительных индексов может помочь, так как вы можете включить более одного поля в индекс, что означает, что последний поиск строки не должен выполняться, но для поиска одной строки этого не происходит чтобы иметь большое значение, если у вас не будет много за короткий промежуток времени.
Поиск десятков миллионов строк ненамного медленнее, чем поиск миллионов строк (или сотен тысяч и т. Д.). если поиск использует соответствующий индекс а не сканирование таблицы.