Khi nào SQL Server cảnh báo về Cấp bộ nhớ quá mức?


18

Các điều kiện tạo ra cảnh báo kế hoạch thực hiện "Cấp quá mức" là gì?

Cấp bộ nhớ truy vấn đã phát hiện "ExcessiveGrant", có thể ảnh hưởng đến độ tin cậy. Kích thước tài trợ: 5128 KB ban đầu, 5128 KB cuối cùng, được sử dụng 16 KB.

SSMS

Kế hoạch SSMS

Thuộc tính SSMS

Kế hoạch thám hiểm

Kế hoạch thám hiểm

Showplan xml

<Warnings>
    <MemoryGrantWarning GrantWarningKind="Excessive Grant"
        RequestedMemory="5128" GrantedMemory="5128" MaxUsedMemory="16" />
</Warnings>

Câu trả lời:


19

Để đưa ra cảnh báo này:

  1. Bộ nhớ được sử dụng tối đa phải ít hơn 5% bộ nhớ được cấp;
  2. Truy vấn phải sử dụng semaphore tài nguyên thông thường (không nhỏ)

Để sử dụng semaphore tài nguyên thông thường , truy vấn phải:

  • Đã cấp bộ nhớ trên 5MB (trang 5120 KB, 640 x 8KB); HOẶC LÀ
  • Có tổng chi phí kế hoạch ước tính trên 3 đơn vị và không phải là một kế hoạch tầm thường

Yêu cầu phiên bản máy chủ :

  • SQL Server 2014 SP2 (12.0.5000) trở lên
  • SQL Server 2016 SP1 (13.0.4001) trở lên
  • SQL Server 2017 RTM (14.0.1000) trở lên
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.