Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SQL Server 2008 - wykonuj zapytania równolegle

Pierwszym pomysłem jest posiadanie oddzielnych wątków i oddzielnych połączeń, ale myślę, że możesz zarządzać wieloma połączeniami w jednym wątku za pomocą asynchronicznych wywołań zwrotnych:

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. Nie można zmniejszyć bazy danych „tylko do odczytu” | Zmniejsz dziennik transakcji podczas korzystania z grupy dostępności AlwaysOn

  2. przechowywanie plików na serwerze sql 2008 przy użyciu opcji filestream

  3. Jaka jest wewnętrzna reprezentacja datetime w serwerze sql?

  4. Określ, które obiekty odwołują się do tabeli w SQL Server

  5. Średnia niespójności zmiennoprzecinkowej