Это в основном внутреннее ограничение реализации. Он не определяется размером метаданных (т. Е. Столбцом tinyint или небольшим столбцом int для index_id), но вместо этого является столбцом метаданных, который отражает внутреннее ограничение.
Всякий раз, когда появляется такое ограничение, это означает, что где-то в коде существуют практические ограничения того, как это обрабатывается. Чтобы привести пример, возможно, генерация плана запроса станет слишком сложной, если потребуется учесть десятки тысяч индексов в одной таблице и потребуется гораздо больше времени для создания даже тривиального плана. Столкнувшись с такими проблемами, проводится черта на то, что считается «разумным» числом. ~ 250 индексов казались разумными в конце 90-х, предел был доведен до 1000 в R2.