Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL Server 2008 -- изпълнявайте заявки паралелно

Първата идея е да имате отделни нишки и отделни връзки, но мисля, че можете да я управлявате с множество връзки в една нишка, като използвате асинхронни обратни извиквания:

string[] tables = new string[] { "TableA", "TableB", "TableC" ... };
var runningCommands = new List<SqlCommand>();
foreach(var table in tables)
{
  var conn = new SqlConnection(...);
  conn.Open();
  var cmd = new SqlCommand("DELETE FROM " + table + " WHERE id = @id");
  cmd.Parameters.Add(new SqlParameter("@id", id);
  cmd.BeginExecuteNonQuery(); 
  runningCommands.Add(cmd);
}
// now wait for all of them to finish executing
foreach(var cmd in runningCommands)
{
  cmd.EndExecuteNonQuery();
  cmd.Connection.Close();
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да свържете низове в SQL Server с CONCAT()

  2. Как да редактирам таблица, за да активирам CASCADE DELETE?

  3. Неправилна сума, когато се присъединя към втора маса

  4. Попълване на C# DataTable асинхронно

  5. Генериране на дати между периоди от време