C # и SQL Server хранимой процедуры несколько действий вставки, влияние? - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть приложение, которое использует хранимые процедуры для вставки таблиц данных в мой SQL Server. Во время выполнения он обращается к базе данных, использует одну хранимую процедуру и одну таблицу для выполнения нескольких действий вставки. Но как это влияет на мою базу данных?

Например, у меня есть

  • 5 Datatables (dt1..dt5)
  • 1 Таблица (tb1)
  • 1 хранимая процедура

Во время выполнения все dt обрабатывались в своей собственной задаче.

Каждая задача выполняет несколько манипуляций с данными и, наконец, сохраняет их в SQL Server с помощью хранимой процедуры в таблицу tb1.

Но каково влияние, если я сделаю что-то подобное? Будут ли эти таблицы данных добавляться после другого?

Вот код:

public static void CreateTasks(string sInput, string sOutput)
{          
    List<Task> Tasks = new List<Task>();
    string Filename = Path.GetFileName(sInput).Replace(" ", "_").Replace("\\", "_");            
    ...

    // Stores datatable via stored procedure into SQL Server
    Tasks.Add(Task.Factory.StartNew(() => StoreDataInSQL(sInput, sOutput, Filename)));            
    ...

    Task.WaitAll(Tasks.ToArray());
}

1 Ответ

0 голосов
/ 23 апреля 2019

Моя интерпретация того, что задает ваш вопрос: «что происходит, когда вы одновременно выполняете / вносите несколько изменений в одну и ту же таблицу».

Ответ: это зависит .... от очень многих вещей, не в последнюю очередь от того, что (и как) работает ваш SP-код.

В случае простых вставок: он добавит все ваши вставки.

Это похоже на хорошую статью о блокировке таблиц и транзакциях: https://docs.microsoft.com/en-us/sql/relational-databases/sql-server-transaction-locking-and-row-versioning-guide?view=sql-server-2017

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