CACHESTORE_SQLCP Sql Paket membutuhkan waktu> 38 GB setelah beberapa hari.
Kami sudah menjalankan opsi "optimalkan untuk beban kerja ad hoc" aktif. (Kerangka Entitas dan pelaporan khusus membuat banyak hoc iklan!)
SQL Server 2016 SE 3.00.2164.0.v1 pada AWS RDS dengan mirroring multi-AZ
Ketika saya menjalankan:
DBCC FREESYSTEMCACHE('SQL Plans');
atau
DBCC FREEPROCCACHE
atau
DBCC FREESYSTEMCACHE ('SQL Plans') WITH MARK_IN_USE_FOR_REMOVAL
atau
DBCC FREESYSTEMCACHE ('ALL') WITH MARK_IN_USE_FOR_REMOVAL;
Tampaknya tidak jelas:
SELECT TOP 1 type, name, pages_kb FROM sys.dm_os_memory_clerks ORDER BY pages_kb desc
type name pages_kb
CACHESTORE_SQLCP SQL Plans 38321048
Saya menjalankan dengan Query Store diaktifkan, tetapi saya menonaktifkannya untuk melihat apakah itu mengganggu apa pun, sepertinya tidak membantu, tapi saya tidak melakukannya.
Yang aneh juga
SELECT COUNT(*) FROM sys.dm_exec_cached_plans
adalah 1-3 atau lebih (tampaknya hanya menunjukkan permintaan yang sedang berjalan saat ini), meskipun semua memori dicadangkan, bahkan sebelum saya berusaha menghapus apa pun. Apa yang saya lewatkan?
CACHESTORE_SQLCP mengambil lebih dari 60% dari semua memori yang tersedia, yang menjadi perhatian karena ada menunggu memori terjadi sesekali. Selain itu, kami harus membunuh DBCC CHECKDB rutin selama akhir pekan yang berlangsung selama 4 jam karena memori yang tidak cukup sedang menunggu (itu diselesaikan secara instan tanpa kesalahan dengan PHYSICAL_ONLY aktif).
Apakah ada cara untuk mendapatkan kembali memori ini (selain reboot malam !?)
Perbarui dari komentar / jawaban
Ketika saya berlari
SELECT * FROM sys.fn_my_permissions(NULL,NULL)
saya mendapat
entity_name subentity_name permission_name
server CONNECT SQL
server CREATE ANY DATABASE
server ALTER ANY LOGIN
server ALTER ANY LINKED SERVER
server ALTER ANY CONNECTION
server ALTER TRACE
server VIEW ANY DATABASE
server VIEW ANY DEFINITION
server VIEW SERVER STATE
server ALTER SERVER STATE
server CREATE SERVER ROLE
server ALTER ANY SERVER ROLE
Yang termasuk ALTER SERVER STATE
izin yang diperlukan .
Output dari DBCC FREEPROCCACHE
is
Eksekusi DBCC selesai. Jika DBCC mencetak pesan kesalahan, hubungi administrator sistem Anda.
Yang merupakan pesan standar. Fungsi DBCC lain yang RDS tidak mendukung memberikan pesan kesalahan tentang izin.
(Sehari kemudian dan setelah menjalankan itu lagi, Paket SQL masih 38.321.280 kb)
Perbarui dari komentar / jawaban
SELECT pool_id, name, cache_memory_kb, compile_memory_kb FROM sys.dm_resource_governor_resource_pools
output:
pool_id name cache_memory_kb compile_memory_kb
1 internal 38368408 1168080
DBCC FREEPROCCACHE ('internal')
tidak melakukan sesuatu yang berbeda
Memperbarui
SQL Error Log mencatat berikut ini setiap kali:
2017-10-19 14:26:47.22 spid85 SQL Server has encountered 1 occurrence(s) of cachestore flush for the 'Object Plans' cachestore (part of plan cache) due to 'DBCC FREEPROCCACHE' or 'DBCC FREESYSTEMCACHE' operations.
2017-10-19 14:26:47.22 spid85 SQL Server has encountered 1 occurrence(s) of cachestore flush for the 'SQL Plans' cachestore (part of plan cache) due to 'DBCC FREEPROCCACHE' or 'DBCC FREESYSTEMCACHE' operations.
2017-10-19 14:26:47.22 spid85 SQL Server has encountered 1 occurrence(s) of cachestore flush for the 'Bound Trees' cachestore (part of plan cache) due to 'DBCC FREEPROCCACHE' or 'DBCC FREESYSTEMCACHE' operations.
Memperbarui
Ada peningkatan versi mesin pada RDS dari 13.00.2164.0.v1 ke 13.00.4422.0.v1 tersedia. Meskipun diatur ke pemutakhiran versi minor-otomatis, sepertinya pembaruan ini tidak membuat kami diperbarui. Akan reboot dan instal akhir pekan ini untuk melihat apakah itu membantu.