CACHESTORE_SQLCP Sql Planları birkaç gün sonra> 38 GB alır.
Halihazırda "geçici iş yükleri için optimize et" seçeneğiyle çalışıyoruz. (Entity Framework ve özel raporlama çok sayıda reklam alanı yaratır!)
Çoklu AZ yansıtmalı AWS RDS'de SQL Server 2016 SE 3.00.2164.0.v1
Koştuğumda:
DBCC FREESYSTEMCACHE('SQL Plans');
veya
DBCC FREEPROCCACHE
veya
DBCC FREESYSTEMCACHE ('SQL Plans') WITH MARK_IN_USE_FOR_REMOVAL
veya
DBCC FREESYSTEMCACHE ('ALL') WITH MARK_IN_USE_FOR_REMOVAL;
Anlaşılan o değil:
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
Query Store etkinken çalışıyordum, ancak herhangi bir şeye müdahale edip etmediğini görmek için devre dışı bıraktım, yardımcı olmadı, ama bıraktım.
Gerçekten tuhaf olan da
SELECT COUNT(*) FROM sys.dm_exec_cached_plans
1-3 ya da öylesine (sadece şu anda çalışan sorguları gösteriyor gibi görünüyor), bir şey temizlemeye çalışmadan önce bile, tüm bellek ayrılmış olsa bile. Neyi kaçırıyorum?
CACHESTORE_SQLCP, kullanılabilir belleğin% 60'ından fazlasını kaplıyor, bu da endişe verici çünkü zaman zaman bellek beklemeleri var. Buna ek olarak, yetersiz bellek beklemeleri istiflediğinden (PHYSICAL_ONLY açıkken hatasız tamamlandığı için) 4 saat süren hafta sonu rutin bir DBCC CHECKDB'yi öldürmek zorunda kaldık.
Bu hafızayı geri almanın herhangi bir yolu var mı (gece yeniden başlatma dışında !?)?
Yorumlardan / cevaplardan güncelleme
Koştuğumda
SELECT * FROM sys.fn_my_permissions(NULL,NULL)
alırım
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
Hangi gerekli ALTER SERVER STATE
izni içerir .
Çıkış DBCC FREEPROCCACHE
IS
DBCC yürütmesi tamamlandı. DBCC hata mesajları yazdırdıysa, sistem yöneticinize başvurun.
Standart mesaj hangisidir? RDS'nin desteklemediği diğer DBCC işlevleri, izinler hakkında hata iletileri verir.
(Bir gün sonra ve bunu tekrar çalıştırdıktan sonra, SQL Planları hala 38.321.280 kb'dir)
Yorumlardan / cevaplardan güncelleme
SELECT pool_id, name, cache_memory_kb, compile_memory_kb FROM sys.dm_resource_governor_resource_pools
çıktılar:
pool_id name cache_memory_kb compile_memory_kb
1 internal 38368408 1168080
DBCC FREEPROCCACHE ('internal')
farklı bir şey yapmaz
Güncelleme
SQL Hata Günlüğü her seferinde aşağıdakileri kaydeder:
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.
Güncelleme
RDS'de 13.00.2164.0.v1'den 13.00.4422.0.v1'e kadar bir motor sürümü yükseltmesi var. Otomatik küçük sürüm yükseltmesine ayarlanmış olsa da, bizi en son sürüme güncel tutmadı. Yeniden başlatılır ve bu hafta sonu yardımcı olup olmadığını görmek için yükler.