Необходимо превысить лимит записей 8k при использовании широких столбцов/разреженных таблиц.

При использовании широких столбцов/разреженных таблиц необходимо превысить ограничение в 8 КБ записей в SQL Server 2008.

Долгая история, новый клиент, старая система, использующая систему опросов, сводящая данные, так что все ответы представляют собой столбец.

У меня 1500 столбцов, и теперь я получаю

Невозможно создать строку с разреженными данными размером 9652, что превышает допустимый максимальный размер разреженных данных 8019.

Мне нужно превысить лимит записи 8k, если это возможно


person China Syndrome    schedule 22.07.2013    source источник
comment
Это невозможно; ограничение 8K является жестким, неизменяемым общесистемным и системным ограничением. Нет способа обойти это, нет возможности настроить разрешение больше 8K.   -  person marc_s    schedule 22.07.2013
comment
Обходным решением может быть получение записей в виде строк, а не столбцов.   -  person Fabian Bigler    schedule 22.07.2013


Ответы (1)


Невозможно, поскольку SQL Server хранит строки на страницах размером 8 КБ. Единственный способ сделать это — хранить некоторые данные вне строки (например, используя MAX или другие типы LOB для некоторых ваших столбцов). Для вашего приложения это все равно будет выглядеть так, как будто оно находится в той же строке, даже если логически оно находится в совершенно другой области диска.

Если один только набор разреженных столбцов превышает лимит, извините, вам нужно рассмотреть другой способ хранения данных (либо без поворота, EAV, либо просто использовать две таблицы, соединенные ключом, каждая из которых содержит половину набора столбцов ). В последнем случае вы можете сделать это относительно прозрачным для пользователей, используя представления и/или обеспечив доступ ко всем данным/DML через хранимые процедуры, которые понимают разделение.

person Aaron Bertrand    schedule 22.07.2013