質問

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

私が理解していることから、SMOは同時の操作をサポートしておらず、私のテストはそれを引き出しました。 DataReaderコンテキストのようなものは、「読者はすでに開いている」などの例外を投げ続けているため、サーバーオブジェクトレベルで共有メモリがあるようです。私が得ている正確な例外がないことをお詫びします。私はそれらを取得し、この投稿を更新しようとします。

私はSMOの専門家ではなく、正直に言うと自分の道を感じています。私はそれを正しい方法でアプローチしているかどうかは本当にわかりませんが、それはやらなければならないことです、または私たちの生産性はクロールに遅くなります。

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

ダニエル、あなたが与えることができる助けをありがとう

役に立ちましたか?

解決

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top