私はSQL DBAの役割が初めてです。 1日に複数回実行できるストアドプロシージャ(SP1)があります。これは、テーブル1上で高価なSELECT
を実行します。実行には15分かかります。私は完了するために1秒かかるかもしれないtable1にSELECT
を実行する別のストアドプロシージャ(SP2)があります。実行中のSPからテーブルを取得してSQL Serverの別のSPに与える方法はありますか?
SP1の実行後、SP2はSP1が終了するまで待機する必要があります。 SP2を実行するために必要なリソース(table1から選択するようなもの)を得ることができ、SP2が完了した後、SP1に戻す方法はありますか?
SELECT WITH (NOLOCK)
は、他のクエリがtable1を編集しようとしている可能性があるため使用しません。
Hmmm。あなたは答えを知っていますが、あなたはそれを使いたくありません。 –
さて、もっとクリーンな方法があるかどうかを知りたい。 –
明確にするために、SP1はSP1が完了するまでSP2がテーブルから読み取ることができないような排他テーブルロックを使用しますか?そして「SP1に戻す」とはどういう意味ですか?何を返せ? – strickt01