Gói CACHESTORE_QueryCP chiếm tới> 38 GB sau vài ngày.
Chúng tôi đã chạy với tùy chọn "tối ưu hóa cho khối lượng công việc ad hoc" trên. (Khung thực thể và báo cáo tùy chỉnh tạo ra rất nhiều hocs quảng cáo!)
SQL Server 2016 SE 3.00.2164.0.v1 trên AWS RDS với tính năng phản chiếu đa AZ
Khi tôi chạy:
DBCC FREESYSTEMCACHE('SQL Plans');
hoặc là
DBCC FREEPROCCACHE
hoặc là
DBCC FREESYSTEMCACHE ('SQL Plans') WITH MARK_IN_USE_FOR_REMOVAL
hoặc là
DBCC FREESYSTEMCACHE ('ALL') WITH MARK_IN_USE_FOR_REMOVAL;
Nó dường như không xóa nó:
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
Tôi đã chạy với Store Store được kích hoạt, nhưng tôi đã vô hiệu hóa nó để xem liệu điều đó có can thiệp vào bất cứ điều gì không, nó dường như không giúp ích gì, nhưng tôi đã bỏ nó đi.
Điều thực sự kỳ lạ cũng là
SELECT COUNT(*) FROM sys.dm_exec_cached_plans
là 1-3 hoặc hơn (dường như chỉ hiển thị từng truy vấn hiện đang chạy), mặc dù tất cả bộ nhớ đó được bảo lưu, ngay cả trước khi tôi cố gắng xóa bất cứ điều gì. Tôi đang thiếu gì?
CACHESTORE_QueryCP đang chiếm hơn 60% bộ nhớ khả dụng, đây là một vấn đề đáng lo ngại vì thỉnh thoảng có bộ nhớ chờ xảy ra. Ngoài ra, chúng tôi đã phải giết một DBCC CHECKDB thông thường vào cuối tuần kéo dài 4 giờ vì bộ nhớ không đủ để chờ đợi (nó đã hoàn thành ngay lập tức mà không có lỗi với PHYSICS_ONLY).
Có cách nào để lấy lại ký ức này (ngoài việc khởi động lại hàng đêm!?)?
Cập nhật từ ý kiến / câu trả lời
Khi tôi chạy
SELECT * FROM sys.fn_my_permissions(NULL,NULL)
tôi có
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
Trong đó bao gồm sự ALTER SERVER STATE
cho phép cần thiết .
Đầu ra của DBCC FREEPROCCACHE
là
Thực hiện DBCC hoàn thành. Nếu DBCC in thông báo lỗi, liên hệ với quản trị viên hệ thống của bạn.
Đó là thông điệp tiêu chuẩn. Các chức năng DBCC khác mà RDS không hỗ trợ đưa ra thông báo lỗi về quyền.
(Một ngày sau và sau khi chạy lại, Kế hoạch SQL vẫn còn 38.321.280 kb)
Cập nhật từ ý kiến / câu trả lời
SELECT pool_id, name, cache_memory_kb, compile_memory_kb FROM sys.dm_resource_governor_resource_pools
đầu ra:
pool_id name cache_memory_kb compile_memory_kb
1 internal 38368408 1168080
DBCC FREEPROCCACHE ('internal')
không làm gì khác
Cập nhật
Nhật ký lỗi SQL ghi nhật ký sau mỗi lần:
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.
Cập nhật
Có phiên bản nâng cấp động cơ trên RDS từ 13.00.2164.0.v1 lên 13.00.4422.0.v1. Mặc dù nó được đặt thành nâng cấp phiên bản nhỏ tự động, nhưng dường như chúng tôi không cập nhật cho chúng tôi bản mới nhất. Sẽ khởi động lại và cài đặt vào cuối tuần này để xem nếu nó giúp.