Сведения о вопросе

FELL

12:00, 3rd August, 2020

Теги

sql-server    

SQL максимальный размер строки сервера

Просмотров: 439   Ответов: 6

Наткнулся на эту ошибку сегодня. Интересно, может ли кто-нибудь сказать мне, что это значит:

Невозможно отсортировать строку размером 9522, которая больше допустимого максимума 8094.

Это 8094 байта? Персонажи? Поля? Является ли это проблемой объединения нескольких таблиц, которые превышают некоторый предел?



  Сведения об ответе

DINO

20:47, 3rd August, 2020

В SQL 2000 предел строки составляет 8K байт, что соответствует размеру страницы в памяти.

[Редактировать]

В 2005 году размер страницы был таким же (8K), но база данных использует указатели на строке страницы, чтобы указать на другие страницы, содержащие большие поля. Это позволяет 2005 году преодолеть ограничение на размер строки 8K.


  Сведения об ответе

ЯЯ__4

22:23, 9th August, 2020

Проблема, которая, кажется, захватывает многих людей, заключается в том, что вы можете создать таблицу, которая по определению будет содержать более 8K данных, и она будет принимать их просто отлично. И таблица будет работать нормально, вплоть до того момента, когда вы действительно попытаетесь вставить в таблицу более 8K данных.

Итак, допустим, вы создаете таблицу с целочисленным полем для первичного ключа и 10 varchar (1000) полей. Таблица будет работать нормально большую часть времени, так как количество раз, когда вы будете заполнять все 10 ваших полей varchar(1000), будет очень мало. Однако, даже если вы попытаетесь поместить 1000 символов в каждое из ваших полей, это даст вам ошибку, упомянутую в этом вопросе.


  Сведения об ответе

ASER

09:54, 11th August, 2020

Эта должность делает справедливую работу в попытке объяснить это (в контексте SQL 2005):

http://www.consortioservices.com/Blog/2008/02/28/MaximumRowSizeInSQLServer2005ToTheLimit.aspx


  Сведения об ответе

dumai

08:24, 29th August, 2020

К вашему сведению, выполнение этой команды SQL на вашем DB может устранить проблему, если она вызвана пробелом, который необходимо освободить после удаления столбцов переменной длины:

DBCC CLEANTABLE (0,[dbo.TableName])

Смотрите: http://msdn.microsoft.com/en-us/library/ms174418.aspx


  Сведения об ответе

PAGE

16:55, 29th August, 2020

Раньше это было проблемой в SQL 2000, но я думал, что это было исправлено в 2005 году.


  Сведения об ответе

DINO

16:40, 21st August, 2020

8094 байта.

Если вы перечислите некоторые дополнительные сведения о том, что вы делаете, это может помочь нам выяснить действительную причину.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться