6

ASP .NET 4.5 アプリケーションを使用しています。メンテナンス ページには、管理ユーザーが SQL Server 2008 データベースに対して直接実行される SQL を記述できるテキスト ボックスがあります。

場合によっては、管理ユーザーの 1 人が非効率的な SQL を記述し、SQL Server プロセスがサーバー上のすべてのメモリと CPU サイクルを使い果たし始めることがあります。次に、サーバーを再び応答させるために、サービスを開始および停止する必要があります。

クエリがすべてのリソースを消費するのを防ぐ方法はありますか? これらのクエリは、ユーザーが見るのに十分な速さで返されないため、クエリをキャンセルしてもかまいません。

編集 ユーザーが SQL クエリを作成できないようにする方がよいと思いますが、残念ながら、この機能をアプリケーションから削除することはできません。管理者ユーザーは教育を受けたくありません。

4

5 に答える 5

6

サーバーレベルでクエリガバナーを設定できますが、ユーザーごとまたは接続/アプリケーションごとの制限についてはわかりません。

http://technet.microsoft.com/en-us/magazine/dd421653.aspx

とはいえ、ユーザーが SQL クエリを直接入力できるようにすることは、不適切で危険な方法である可能性があります。

于 2013-10-17T22:18:25.863 に答える
3

最初に、これらのクエリがテーブルをロックしていないことを確認します (クエリを実行するたびに NOLOCK または SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED を使用します)。

リソースに関する限り、私はリソース ガバナーのようなものを検討します。これは、本番 OLTP システムのアドホック レポートに使用します。

Pinal Dave のすばらしいブログ エントリがあります。また、Technet や他の MS サイトで、それが何であるか、およびそのセットアップ方法に関する情報を確認することもできます。

http://blog.sqlauthority.com/2012/06/04/sql-server-simple-example-to-configure-resource-governor-introduction-to-resource-governor/

于 2013-10-17T22:19:16.460 に答える