sql >> データベース >  >> RDS >> Sqlserver

SQLServer2008-クエリを並行して実行する

    最初のアイデアは、別々のスレッドと別々の接続を持つことですが、非同期コールバックを使用して、単一のスレッドで複数の接続を使用して管理できると思います:

    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. Oracleデータベース列の特定の値を置き換える方法は?

    2. SQLを使用したOracleの動的列

    3. SQL Server ServerManagementStudioを使用したデータベースのインポート/エクスポート

    4. 四半期から期間までのMySQLグループ