|
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
|
|||
---|---|---|---|
#18+
С одной стороны: 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... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 02:24 |
|
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
|
|||
---|---|---|---|
#18+
SIMPLicity_Как узнать - какой максимальной длинны я смогу сформировать (и передать в commandText) строку S с тем что бы не было сбоя. Примерно 2 млрд. символов (4ГБайт / 2 )? Стесняюсь предложить как минимум два варианта: документация, практические испытания. Но это наверное не тренд )) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 02:31 |
|
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
|
|||
---|---|---|---|
#18+
SIMPLicity_Формирую строку string S примерного содержания: insert into test.dbo.tableA (FieldNVarChar) values('Это длинная тестовая строка, которая содержит кучу текста.........') По рукам бить за такое надо. Про параметры команд не слышали, не? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 09:56 |
|
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
|
|||
---|---|---|---|
#18+
Максимальная длина строки запроса, который можно послать по сети 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 11:39 |
|
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныПо рукам бить за такое надо. Про параметры команд не слышали, не? а что это изменит в контексте вопроса? На сервер все равно уйдет длинный пакет, даже чуть длиннее. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 11:40 |
|
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныSIMPLicity_Формирую строку string S примерного содержания: insert into test.dbo.tableA (FieldNVarChar) values('Это длинная тестовая строка, которая содержит кучу текста.........') По рукам бить за такое надо. Про параметры команд не слышали, не? Я не настолько крут что бы заморачиваться в данной ситуации с параметризацией... PS ... и, это, так я могу легко вылавливать несоответствия ... просто просматривая запрос целиком ... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 21:56 |
|
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
|
|||
---|---|---|---|
#18+
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 Гиг вряд-ли когда "зайдёт" ко мне. Скорее, "по ту сторону баррикад" что-то сдохнет раньше... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 22:04 |
|
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
|
|||
---|---|---|---|
#18+
SIMPLicity_, Я честн незнаю MSSQL, но в MySql есть LOAD DATA INFILE которая собственно "reads rows from a text file into a table at a very high speed" Может чтото подобное поискать? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 22:18 |
|
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
|
|||
---|---|---|---|
#18+
Shocker.ProСон Веры ПавловныПо рукам бить за такое надо. Про параметры команд не слышали, не? а что это изменит в контексте вопроса? На сервер все равно уйдет длинный пакет, даже чуть длиннее. если руки не из жопы растут - поток уедет на сервер ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2018, 22:39 |
|
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
|
|||
---|---|---|---|
#18+
iskatelsqlSIMPLicity_, Я честн незнаю MSSQL, но в MySql есть LOAD DATA INFILE которая собственно "reads rows from a text file into a table at a very high speed" Может чтото подобное поискать? Есть bulk insert, который в качестве источника данных может считывать из файла, но ограничения на длину одного запроса те же самые ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2018, 18:41 |
|
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
|
|||
---|---|---|---|
#18+
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) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2018, 19:28 |
|
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
|
|||
---|---|---|---|
#18+
ИзопропилBULK INSERT умеет читать из потока Как будто файл не является потоком ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2018, 19:47 |
|
Как посчитать допустимую длину строки, передаваемую в запрос в MSSQL server в INSERT
|
|||
---|---|---|---|
#18+
Cat2ИзопропилBULK INSERT умеет читать из потока Как будто файл не является потоком Ее всякий поток является файлом ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2018, 01:07 |
|
|
start [/forum/topic.php?fid=20&fpage=25&tid=1399149]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 149ms |
0 / 0 |