0

サーバーにいくつかのデータベースがあります。このサーバーには 16GB の RAM があり、このシステムはデータベース サーバーとしてのみ使用されます。

しばらく別のデータベースで作業した後、RAM スペース (約 14GB) のほとんどが使用されていることがわかりました。他のアプリケーションを使用して再度作業すると、コンピューターを使用できなくなり、ハングアップします。

どのデータベースが RAM の使用量が多いかを調べるにはどうすればよいですか?その後、どのクエリがこのリソースをいっぱいにするかを調べるにはどうすればよいですか?

4

2 に答える 2

1

Sql Profilerは、データベースに送信されるクエリを分析するための優れたツールです。

set statistics time on

set statistics io on

set statistics profile on

統計は、遅いと思われるクエリを見つけたときに特定のクエリを分析するための優れた方法です。

どのクエリが最も重いかわかりませんか?実際にコードを調べて、実行しているforループ、サブクエリ、またはその他の怪物的なクエリの種類を確認し、重いと思われるものから実行する必要があります。そして、これらをSQLServerManagementでテストします...

于 2012-04-12T08:20:36.747 に答える
1

sys.dm_exec_query_statsテーブル(2005以降)には、IO、経過時間などの点で実行中のクエリが最も集中しているものを見つけるための有用な情報がいくつかあります。

たとえば、これを実行してみてください(最後に実行された25個のクエリの詳細を確認するには)。

SELECT DISTINCT TOP 25 t.TEXT AS query, s.*
FROM   sys.dm_exec_query_stats s
       CROSS APPLY sys.Dm_exec_sql_text(s.sql_handle) t
ORDER  BY s.last_execution_time DESC
于 2012-04-12T08:56:30.823 に答える