
Автор: Craig Freedman Maximum Row Size and Query Hints
В предыдущей статье
я привел пример того как подсказка оптимизатору в запросе может привести к ошибке
при его исполнении. В этой статье рассмотрим ещё один пример: как использование
хинтов может привести к проблемам. SQL Server имеет документированное
ограничение на максимальный размер строки в 8060 байт. Это ограничение
на размер строки применяется конкретно к фиксированной ширине или не
выходящей за пределы записи части колонок с типом переменной длинны. Если вы
попытаетесь создать таблицу, которая превышает это ограничение, вы столкнетесь
со следующей ошибкой:
CREATE TABLE T (A INT, B CHAR(8000), C CHAR(8000))
Msg 1701, Level 16,
State 1, Line 1
Creating or altering
table 'T' failed because the minimum row size would be 16011, including 7 bytes
of internal overhead. This exceeds the maximum allowable table row size of 8060
bytes.
Какое же отношение ограничение размера записи имеет к подсказкам оптимизатору?