のが道を助けて、私は多くのRAMを持っている(30ギガが利用できるので、私は多数のオブジェクトをキャッシュすることができると思います)
はあなたのために、事前によっていただきありがとうございます彼はそれらのオブジェクトにまとめて
をリロードすることは非常に長いです、No.ButあなたがのSQLServer 2012上にある場合、あなたは以下の
希望がメモリの問題
に対処するのに役立ちますけれどもインメモリOLTPは、オブジェクトを使用することができますので、
私は多くのRAMを持っている(30ギガが利用できるので、私は多数のオブジェクトをキャッシュすることができると思います)
あなたは十分なRAMを持っているにもかかわらず、バッファー・プールが使用できるキャッシュの量が依存するだろうMAXサーバーのメモリ構成なので、私はあなたが正しくその値を設定したら、あなたは、このキャッシュは、多くのものに使用されることを認識しておく必要があり、正しく
それを設定していることを前提としていますが、以下の主なもの
です
1.ページ
データベースが使用している10 2.Executionプランキャッシュ
あなたは、そのサーバーでデータベースの多くを持っているし、実行している多くのクエリがある場合は、あなたの30ギガバイトは、クエリの下に使用して...
は十分ではないかもしれない、あなたが識別することができ、より多くのメモリ
SELECT COUNT(*) *8 AS memoryusedKB
,CASE database_id
WHEN 32767 THEN 'ResourceDb'
ELSE db_name(database_id)
END AS database_name
FROM sys.dm_os_buffer_descriptors
GROUP BY DB_NAME(database_id) ,database_id
ORDER BY memoryused DESC;
は、オブジェクトによって、あなたは今、あなたが知っていることを、データベースがより多くのメモリを消費している、もしCあまりに
SELECT COUNT(*)AS cached_pages_count
,name ,index_id
FROM sys.dm_os_buffer_descriptors AS bd
INNER JOIN
(
SELECT object_name(object_id) AS name
,index_id ,allocation_unit_id
FROM sys.allocation_units AS au
INNER JOIN sys.partitions AS p
ON au.container_id = p.hobt_id
AND (au.type = 1 OR au.type = 3)
UNION ALL
SELECT object_name(object_id) AS name
,index_id, allocation_unit_id
FROM sys.allocation_units AS au
INNER JOIN sys.partitions AS p
ON au.container_id = p.partition_id
AND au.type = 2
) AS obj
ON bd.allocation_unit_id = obj.allocation_unit_id
WHERE database_id = DB_ID()
GROUP BY name, index_id
ORDER BY cached_pages_count DESC;
ことを行うことができますことを分離したい場合メモリプールは、この時点で、より多くのメモリ
select type,sum(pages_kb)*128 as memoryusedMB
from sys.dm_os_memory_clerks
group by type
を消費している、あなたは、さらにスクリプトの下から無駄を排除しようとすることができるので、メモリがサーバー
に使用されているかの完全なアイデアを持っているのを見データベースのAdhocプランからキャッシュエントリを削除するKimberely Trippさんの:Plan cache and optimizing for adhoc workloads
以下のスクリプトは、単一のオブジェクトプランによるメモリ使用量を示しています。同じリンクをチェックし、私はそれで行くことはありませんメモリー.Butにページを維持するために、SQL Serverを強制するだけでなく、あなたがメモリ内のページのロックを使用することができますまた、
SELECT objtype AS [CacheType],
COUNT_BIG(*) AS [Total Plans],
SUM(CAST(size_in_bytes AS DECIMAL(18, 2)))/1024/1024 AS [Total MBs],
AVG(usecounts) AS [Avg Use Count],
SUM(CAST((CASE WHEN usecounts = 1 THEN size_in_bytes
ELSE 0
END) AS DECIMAL(18, 2)))/1024/1024 AS [Total MBs – USE Count 1],
SUM(CASE WHEN usecounts = 1 THEN 1
ELSE 0
END) AS [Total Plans – USE Count 1]
FROM sys.dm_exec_cached_plans
GROUP BY objtype
ORDER BY [Total MBs – USE Count 1] DESC
これらのエントリを削除するスクリプトを、持っていますあなたはここで詳しい情報を読むことができます。
https://www.simple-talk.com/sql/database-administration/great-sql-server-debates-lock-pages-in-memory/