2009-09-01 8 views
8

ストアドプロシージャのタイムアウトを設定する方法を知っている人はいますか? NET上でいくつかの例を見つけました。例えば、sp_configure 'remote Query Timeout'、5、しかしこれはうまくいきませんでした。また、いくつかのコマンド "DBPROP_COMMANDTIMEOUT"と "DBPROP_GENERALTIMEOUT"が見つかりましたが、それらが正しいかどうかわかりません。もしそうであれば、それらを私のtransact-SQLコードでどのように使用するかわかりません。SQL Server 2005のストアドプロシージャのクエリタイムアウトを設定する

答えて

3

私はサーバー側でストアドプロシージャを実行するためのタイムアウトを設定することについて聞いたことがありません。通常は、使用しているデータプロバイダ(ADO.NETなど)でプロシージャを実行するコマンドのタイムアウトを指定します。

+0

はい、それはクライアントのタイムアウトです – gbn

1

このarticleには、クエリタイムアウトとそのクライアント側の概念についての説明があります。 SQL Server管理スタジオで[ツール|オプション]メニューからクエリのタイムアウトを設定できます。

0

クライアントでストアドプロシージャを実行するときにタイムアウトを設定する必要があります。 SQL Serverが動作する限り、キャンセルするように指示されていない限り、ストアドプロシージャを実行できます。

5

Chris Tybur氏によると、ストアドプロシージャのクエリのタイムアウトは、ストアドプロシージャまたはSQL Serverでは実行できません。

CommandTimeoutはクライアントの概念です。クライアントは一定の時間が経過するとクエリを中止します。ストアドプロシージャが自身を中止するためのデッドマンタイマーやメカニズムはありません。 SQL Serverでは、クエリを永久に実行できます。

Remote Query Timeout」は、SQL Serverがリモート呼び出しを行うときのタイムアウト、SQL Server自体が別のサーバーのクライアントであるときのタイムアウトです。それは説明で述べている:

この値は、リモート・クエリなどのデータベース エンジンによって開始され、発信 接続に適用されます。この値 は、データベースエンジン によって受信されたクエリには影響しません。

良い情報との最近の質問: - 「?何があなたがないようにしたいということが起こっている」timeout setting for SQL Server

3

待ち本当の問題は、あります誰もがサーバー側のクライアント側に焦点を当てていますが、実際にはなぜこの質問をしているのかわかりません(それは重要です)。

「なぜ」:なぜ「ストアドプロシージャ」にタイムアウトを設定したいのですか?なぜビュー、関数、クエリではないのですか?特定の理由で「ストアドプロシージャ」という用語を使用しましたか、またはT-SQLでタイムアウトを設定する方法を学習するだけでよいですか?

ロックの問題があり、おそらくSET LOCK_TIMEOUT 1000またはWITH(NOLOCK)が本当に必要なものかもしれないと思うので、私は尋ねています。私は言うことはできませんが、より多くの情報なし。あなたがなぜ尋ねているのか、何が起こっているのか、そしてあなたが「タイムアウト」に達した場合に最終的に何が起こりたいのかについて、より多くのフィードバックを与えることができれば、もっと助けることができます。

ボトムライン:はい、T-SQLでタイムアウトを設定できます。はい、T-SQLを使用してストアドプロシージャの実行を停止できます。しかし、私はあなたがどこを見ているのかアドバイスを提供したいのか、あなたにもっと詳しい情報を伝えたいのか十分に分かりません。私はすでに私があまりにも多くを言ったことにちょっと怖いです:)

関連する問題