0

データベースの作業が終了した後、データベースで使用されているRAMを解放するにはどうすればよいですか?(RAM使用量はSPを実行する前は1.57で、その後、SPを実行して終了すると、RAM使用量は2.24になります。SQLServerを再起動すると問題ありません)。

多目的サーバーは1つだけです。このサーバーはSQLServerホストであり、このサーバー上で他のエンタープライズアプリケーションも実行します。これらのアプリケーションには、RAMの空き容量も必要です。

これらのアプリケーションに実行するのに十分なRAMがあることを確認するにはどうすればよいですか?

4

2 に答える 2

1

「最大サーバーメモリ」設定を変更してください。さらにヘルプが必要な場合は、SQLBULK挿入/BCPエクスポート後に解放されなかった使用済みメモリの投稿を読んでください。

于 2012-11-27T10:44:52.840 に答える
0

私は以前にそのような問題を抱えていました、そして私はこの問題の解決策を見つけました。以下に説明するようにストアドプロシージャを作成できます。十分なメモリが必要なため、アプリケーションを起動する前に、このストアドプロシージャをモード1で呼び出す必要があります。

SQL操作の場合、およびアプリケーションを閉じる前に、このストアドプロシージャをモード0で再度呼び出す必要があります。

Create Proc  [dbo].[MP_Rpt_ConfigureMemory]
(  @Mode  bit  )
as
declare @RAM as integer
declare @MAX as integer
declare @MIN as integer

set @RAM =
(SELECT

      [physical_memory_in_bytes]/1048576 AS [RAM (MB)]

FROM  [sys].[dm_os_sys_info] )

Set @MAX = ((@RAM / 4) * 3)
Set @MIN = ((@RAM / 4) * 1)

if @Mode=0
begin
      exec SP_Configure 'min server memory', 1
      RECONFIGURE
      exec SP_Configure 'max server memory', 100
      RECONFIGURE
end
else
if @Mode = 1
begin
      exec SP_Configure 'max server memory', @MAX
      RECONFIGURE
      exec SP_Configure 'min server memory', @MIN
      RECONFIGURE
end
于 2012-11-28T11:58:56.047 に答える