Существует ли ограничение на количество строк, которые можно передать хранимой процедуре SQL Server в параметре с табличC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Существует ли ограничение на количество строк, которые можно передать хранимой процедуре SQL Server в параметре с таблич

Сообщение Anonymous »

Я использую SQL Server 2019.
По какой-то причине при попытке передать список из 10 000 идентификаторов в SQL Server с веб-сервера C# в качестве параметра с табличным значением, только часть идентификаторов (~7000) в конечном итоге отправляется на сервер (проверяется с помощью трассировки).
Это известная проблема или существуют конфигурации, которые я могу настроить, чтобы гарантировать, что все ценности прошло?
Я создал в SQL Server следующий тип:

Код: Выделить всё

CREATE TYPE [dbo].[IntList] AS TABLE([ID] [int] NULL)
Тогда у меня есть хранимая процедура, которая принимает тип в качестве параметра:

Код: Выделить всё

CREATE PROCEDURE [dbo].[spStackOverflowQuestionExample]
@Ids dbo.IntList READONLY,
Код сервера C#: параметр создается следующим образом:

Код: Выделить всё

var dt = new DataTable();
dt.Columns.Add("Id", typeof(int));

foreach (var id in ids)
{
dt.Rows.Add(id);
}

parameters.Add(new SqlParameter { ParameterName = "@Ids", Value = dt, SqlDbType = SqlDbType.Structured });
Затем параметр добавляется к команде и выполняется с помощью ExecuteReaderAsync.
Я читал в Интернете, что людям удавалось передать большие табличные параметры для хранимых процедур:
https://www.dbdelta.com/sql-server-tvp- Performance-gotchas/
Есть ли другие способы сделать это?
Я пробовал группировать запрос на сервере в разные вызовы, но все еще ищу решение, позволяющее избежать многократного обращения от сервера к базе данных.

Подробнее здесь: https://stackoverflow.com/questions/793 ... tored-proc
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • C# и SQL Server: получение ошибки в хранимой процедуре
    Anonymous » » в форуме C#
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Есть ли предел для количества строк, которые можно передавать в хранимую процедуру SQL Server в параметре с таблицей?
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Dapper не возвращает значение из try-catch в хранимой процедуре
    Anonymous » » в форуме C#
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Оптимизация производительности запросов в хранимой процедуре
    Anonymous » » в форуме C#
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Php 8.1 + mysql 5.7: обработчик ошибок в хранимой процедуре не работает
    Anonymous » » в форуме Php
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»