Могу ли я хранить более 8000 символов в поле таблицы SQL? - PullRequest
0 голосов
/ 15 октября 2018

Столкнулся с проблемой сохранения более 8000 символов, но не хотел использовать nvarChar (max), потому что это повлияет на производительность.

Есть ли способ сохранить символ до 15000 символов вполе без использования nvarChar (max)?И есть ли возможность динамически увеличивать размер поля в соответствии с размером данных без использования nvarChar?

1 Ответ

0 голосов
/ 15 октября 2018

Вроде да, но это быстро запутывается, и на самом деле обходной путь будет хуже производительности, чем вариант varchar (max).Проблема в том, что на одной странице допускается ограничение в 8060 байт.Вы можете превысить это ограничение, но при условии, что вы принимаете данные, хранящиеся вне страницы и на странице в другом месте.

Предпочтительный вариант: используйте Varchar (Max) и разрешите использование хранилища больших объектов.

Альтернатива: используйте несколько полей varchar (8000) и разбейте / объедините вашу строку - данные получат Short Large Object'ed (SLOB), а поля varchar (8000) будут сохранены на разных страницах.Это сделает его менее производительным - не говоря уже о проблемах производительности разделения / объединения.

2-й вариант - сжатие данных, но нет гарантии, что вы все равно можете сохранить его в пределах 8 КБ.

Устаревший: Текст - не используйте это как решение

Короче - не пытайтесь избегать varchar (max) - вы бы сделали свою жизнь намного хуже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...