Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Можно ли обойти ограничение длинны строки в таблице в 8094 bytes? / 13 сообщений из 13, страница 1 из 1
08.04.2021, 10:05
    #40060606
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти ограничение длинны строки в таблице в 8094 bytes?
Всем привет, есть SQL Server 2017 Std, разработчикам требуется создать таблицу с большим количеством с столбцов. Собственно с этим возникает проблема:

авторСообщение 1701, уровень 16, состояние 1, строка 2
Creating or altering table 'FakeWorkTable' failed because the minimum row size would be 9519, including 201 bytes of internal overhead. This exceeds the maximum allowable table row size of 8094 bytes.
Сообщение 8630, уровень 17, состояние 48, строка 2
Internal Query Processor Error: The query processor encountered an unexpected error during execution (HRESULT = 0x80004005).

При этом, на версии 2019 всё хорошо. Можно ли увеличить ограничение в 8094 bytes?
...
Рейтинг: 0 / 0
08.04.2021, 10:17
    #40060609
Ennor Tiegael
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти ограничение длинны строки в таблице в 8094 bytes?
teCa,

Очень большим количеством столбцов - это сколько? И какие типы данных?

А вообще sparse columns, если так уж неймется хранить все это в одной таблице.
...
Рейтинг: 0 / 0
08.04.2021, 11:42
    #40060634
Valery_B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти ограничение длинны строки в таблице в 8094 bytes?
teCa,

Код: sql
1.
2.
ALTER TABLE FakeWorkTable
ADD Trash VARCHAR(MAX)


?
...
Рейтинг: 0 / 0
08.04.2021, 11:50
    #40060639
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти ограничение длинны строки в таблице в 8094 bytes?
teCa,

две таблицы они не могут создать из религиозных побуждений, что ли?
...
Рейтинг: 0 / 0
08.04.2021, 12:50
    #40060656
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти ограничение длинны строки в таблице в 8094 bytes?
Владислав Колосов
teCa,

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


Ну они подошли с вопросом, есть ли возможность обойти это ограничение или изменить в конфигах сервера, я объяснил, что это ограничение создано для того, что-бы не вредить производительности, одна строка - одна страница, на что получил ответ, что на другом сервере этот код работает, на другом стоит 2019ст. Вот и хочется разобраться.
...
Рейтинг: 0 / 0
08.04.2021, 13:13
    #40060673
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти ограничение длинны строки в таблице в 8094 bytes?
teCa
что на другом сервере этот код работает, на другом стоит 2019ст. Вот и хочется разобраться.


Свежо преданье - верится с трудом.
Ничо так фундаментально в MS SQL не меняли.
Ограничение на размер строки во всех версиях сервера одинаково.
Сравнивайте кляузы создания таблицы.
...
Рейтинг: 0 / 0
08.04.2021, 14:35
    #40060715
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти ограничение длинны строки в таблице в 8094 bytes?
Valery_B,

проблема не в длине строки поля NVARCHAR, оно при MAX может быть 2гб, а в размере записи в самой субд.
речь про строку в файловой таблице, так как количество колонок очень большое, размер строк при этом значения не имеет.
я не уверен, пусть местные гуру скажу, NVARCHAR(MAX) хранится в таблице по ссылке?
...
Рейтинг: 0 / 0
08.04.2021, 15:01
    #40060730
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти ограничение длинны строки в таблице в 8094 bytes?
Пообщался с разработчиками, они пытаются запихнуть в таблицу 200 полей, тип поля INT, как говорят, но 2019 у них есть подобное решение, где в таблице 400 полей, тоже типа INT.
...
Рейтинг: 0 / 0
08.04.2021, 15:04
    #40060731
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти ограничение длинны строки в таблице в 8094 bytes?
teCa
Пообщался с разработчиками, они пытаются запихнуть в таблицу 200 полей, тип поля INT, как говорят, но 2019 у них есть подобное решение, где в таблице 400 полей, тоже типа INT.
Расскажите им про нормальные формы, что ли...
...
Рейтинг: 0 / 0
08.04.2021, 16:05
    #40060761
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти ограничение длинны строки в таблице в 8094 bytes?
Вообще для всех классических DBMS (Oracle/MSSQL e.t.c.) КПД чтения (fetch) таблицы падает с увеличением числа строк.
Это особенно заметно когда декларировано 200 колонок а юзается только 100 например.

Делайте конешно. Но действительно ли все 200 штук всегда участвуют в fetch операциях?
...
Рейтинг: 0 / 0
08.04.2021, 16:30
    #40060769
uaggster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти ограничение длинны строки в таблице в 8094 bytes?
Ну... Чисто теоретически, если речь идет о DWH - то почему б и нет?
...
Рейтинг: 0 / 0
08.04.2021, 17:13
    #40060782
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти ограничение длинны строки в таблице в 8094 bytes?
Так пусть сервер проапгрейдят, если такие умные.
Это называется "вертикальное секционирование", надо сделать две таблицы 1 к 1 и к ним представление. Заполнять в два этапа потребуется, разумеется.
...
Рейтинг: 0 / 0
09.04.2021, 12:41
    #40060977
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти ограничение длинны строки в таблице в 8094 bytes?
Гавриленко Сергей Алексеевич
teCa
Пообщался с разработчиками, они пытаются запихнуть в таблицу 200 полей, тип поля INT, как говорят, но 2019 у них есть подобное решение, где в таблице 400 полей, тоже типа INT.
Расскажите им про нормальные формы, что ли...


Если это DWH, то читать надо дедушку Кимбалла. Самое краткое здесь.

https://en.wikipedia.org/wiki/Dimensional_modeling
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Можно ли обойти ограничение длинны строки в таблице в 8094 bytes? / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]