powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
14 сообщений из 14, страница 1 из 1
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
    #39738092
Фотография SIMPLicity_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С одной стороны: MSSQL Server (2008), база test, таблица tableA, поле FieldNVarChar nvarchar(max) null)
С другой стороны: C#, Net 4.0

Настраиваю и открываю подключение к MSSQL-серверу....
Формирую строку string S примерного содержания: insert into test.dbo.tableA (FieldNVarChar) values('Это длинная тестовая строка, которая содержит кучу текста.........')

Как узнать - какой максимальной длинны я смогу сформировать (и передать в commandText) строку S с тем что бы не было сбоя. Примерно 2 млрд. символов (4ГБайт / 2 )?

--------------------------
No ROM Basic...
...
Рейтинг: 0 / 0
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
    #39738095
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SIMPLicity_Как узнать - какой максимальной длинны я смогу сформировать (и передать в commandText) строку S с тем что бы не было сбоя. Примерно 2 млрд. символов (4ГБайт / 2 )?

Стесняюсь предложить как минимум два варианта: документация, практические испытания.

Но это наверное не тренд ))
...
Рейтинг: 0 / 0
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
    #39738125
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SIMPLicity_Формирую строку string S примерного содержания: insert into test.dbo.tableA (FieldNVarChar) values('Это длинная тестовая строка, которая содержит кучу текста.........')
По рукам бить за такое надо. Про параметры команд не слышали, не?
...
Рейтинг: 0 / 0
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
    #39738143
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Максимальная длина строки запроса, который можно послать по сети

65,536 * Network Packet Size

Network Packet Size is the size of the tabular data stream (TDS) packets used to communicate between applications and the relational Database Engine. The default packet size is 4 KB, and is controlled by the network packet size configuration option

https://docs.microsoft.com/en-us/sql/sql-server/maximum-capacity-specifications-for-sql-server?view=sql-server-2017
...
Рейтинг: 0 / 0
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
    #39738144
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныПо рукам бить за такое надо. Про параметры команд не слышали, не?
а что это изменит в контексте вопроса? На сервер все равно уйдет длинный пакет, даже чуть длиннее.
...
Рейтинг: 0 / 0
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
    #39738272
Фотография SIMPLicity_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныSIMPLicity_Формирую строку string S примерного содержания: insert into test.dbo.tableA (FieldNVarChar) values('Это длинная тестовая строка, которая содержит кучу текста.........')
По рукам бить за такое надо. Про параметры команд не слышали, не?

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

PS ... и, это, так я могу легко вылавливать несоответствия ... просто просматривая запрос целиком ...
...
Рейтинг: 0 / 0
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
    #39738275
Фотография SIMPLicity_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Максимальная длина строки запроса, который можно послать по сети

65,536 * Network Packet Size

Network Packet Size is the size of the tabular data stream (TDS) packets used to communicate between applications and the relational Database Engine. The default packet size is 4 KB, and is controlled by the network packet size configuration option

https://docs.microsoft.com/en-us/sql/sql-server/maximum-capacity-specifications-for-sql-server?view=sql-server-2017

Про nvarchar(max):
https://docs.microsoft.com/ru-ru/sql/t-sql/data-types/nchar-and-nvarchar-transact-sql?view=aps-pdw-2016 nvarchar [ ( n | max ) ]
Строковые данные переменной длины. n определяет длину строки в парах байтов и может иметь значение от 1 до 4000. Значение max указывает, что максимальный размер при хранении составляет 2^30-1 символов (2 ГБ). Размер при хранении определяется как дважды n байт + 2 байта. В случае с кодировкой UCS-2 размер при хранении определяется как дважды n байт + 2 байта, а количество хранимых символов равно n. Для кодировки UTF-16 размер при хранении также равен дважды n байт + 2 байта, но количество хранимых символов может быть меньше n, так как дополнительные символы используют две пары байтов (также называются суррогатными парами). Синонимами типа nvarchar по стандарту ISO являются типы national char varying и national character varying. - в общем - уже не более 2 ГБайт.
...
Остановился на допуске, что и 1 Гиг вряд-ли когда "зайдёт" ко мне. Скорее, "по ту сторону баррикад" что-то сдохнет раньше...
...
Рейтинг: 0 / 0
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
    #39738280
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SIMPLicity_,

Я честн незнаю MSSQL, но в MySql есть LOAD DATA INFILE которая собственно "reads rows from a text file into a table at a very high speed"

Может чтото подобное поискать?
...
Рейтинг: 0 / 0
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
    #39738282
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProСон Веры ПавловныПо рукам бить за такое надо. Про параметры команд не слышали, не?
а что это изменит в контексте вопроса? На сервер все равно уйдет длинный пакет, даже чуть длиннее.
если руки не из жопы растут - поток уедет на сервер
...
Рейтинг: 0 / 0
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
    #39738752
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
iskatelsqlSIMPLicity_,

Я честн незнаю MSSQL, но в MySql есть LOAD DATA INFILE которая собственно "reads rows from a text file into a table at a very high speed"

Может чтото подобное поискать?
Есть bulk insert, который в качестве источника данных может считывать из файла, но ограничения на длину одного запроса те же самые
...
Рейтинг: 0 / 0
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
    #39738775
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2iskatelsqlSIMPLicity_,

Я честн незнаю MSSQL, но в MySql есть LOAD DATA INFILE которая собственно "reads rows from a text file into a table at a very high speed"

Может чтото подобное поискать?
Есть bulk insert, который в качестве источника данных может считывать из файла, но ограничения на длину одного запроса те же самые
BULK INSERT умеет читать из потока

ограничение только максимальный размер поля - 2GB(не распространяется на FILESTREAM)
...
Рейтинг: 0 / 0
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
    #39738783
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ИзопропилBULK INSERT умеет читать из потока
Как будто файл не является потоком
...
Рейтинг: 0 / 0
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
    #39738877
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2ИзопропилBULK INSERT умеет читать из потока
Как будто файл не является потоком
Ее всякий поток является файлом
...
Рейтинг: 0 / 0
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
    #39740093
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ИзопропилCat2пропущено...

Как будто файл не является потоком
Ее всякий поток является файлом
Но всякий файл может быть представлен, как поток
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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