0

SMOを使用して単一のSQLServerインスタンス内の複数のデータベースに対して更新スクリプトを同時に実行する方法を見つけようとして、壁に頭をぶつけてきました。私たちの環境では、更新が必要なデータベースの数が増え続けており、一度に1つずつ繰り返すことが問題になっています(遅すぎる)。

私が理解していることから、SMOは並行操作をサポートしておらず、私のテストはそれを退屈させました。サーバーオブジェクトレベルで共有メモリがあるようです。DataReaderコンテキストなどの場合、「リーダーはすでに開いています」などの例外をスローし続けます。正確な例外が発生していないことをお詫び申し上げます。私はそれらを取得して、この投稿を更新しようとします。

私はSMOの専門家ではなく、正直に言うと自分の道を感じています。私が正しい方法でアプローチしているのかどうかはわかりませんが、それを実行する必要があります。そうしないと、生産性が低下します。

では、どうやってこのようなことをしますか?SMOで間違ったテクノロジーを使用していますか?私がやりたいのは、単一のSQLServerインスタンス内のデータベースに対してSQLスクリプトを並行して実行することだけです。

ダニエル、あなたが与えることができるどんな助けにも感謝します

4

1 に答える 1

0

複数のServerConnectionオブジェクトを使用し、それぞれで複数のServerオブジェクトをインスタンス化するだけです。基本的に、スレッドごとに1つ。それらがすべて同じデータベースインスタンスに接続するかどうかは関係ありません。

そのようにデータベースのスキーマを文書化するアプリケーションを作成しました。複数の「クエリ」(ExecuteNonQuery()だけでなく、SMO上の他の関数も)を問題なく同時に実行します。少なくとも今日までは。残念ながら、彼らはかなり「基本的な」ものを除けば、SMOに関する多くの文書ではないようです。

于 2011-01-12T06:50:14.147 に答える