Nhìn vào khả năng RAM của bạn cho máy chủ cụ thể này và bạn đang chạy một số cơ sở dữ liệu từ 30 GB đến 5 GB , bạn chắc chắn cần thêm RAM trên máy chủ này.
Bạn đã không đề cập rằng đây là một phiên bản độc lập hoặc máy chủ này đang có nhiều hơn một phiên bản máy chủ sql đang chạy.
Cài đặt bộ nhớ MAX của bạn có vẻ ổn đối với máy chủ có RAM 8GB. Xem những đề xuất thực hành tốt nhất được đề xuất từ Glenn Berry .
Tôi thực sự khuyên bạn nên thực hiện một đường cơ sở của môi trường của bạn bằng cách sử dụng các bộ đếm PERFMON bên dưới để có được giá trị tốt về cấu hình bộ nhớ của bạn:
- SQL Server: Trình quản lý bộ đệm \ Tuổi thọ trang
- SQL Server: Trình quản lý bộ đệm \ Trang đọc / giây
- Đĩa vật lý \ Đĩa đọc / giây
- Bộ nhớ \ Mbyte có sẵn
- SQL Server: Trình quản lý bộ nhớ - Tổng bộ nhớ máy chủ
- SQL Server: Trình quản lý bộ nhớ - Bộ nhớ máy chủ mục tiêu
Tổng bộ nhớ máy chủ: Lượng bộ nhớ hiện được phân bổ cho Bộ đệm và không phải tổng bộ nhớ cho SQL Server
Bộ nhớ máy chủ đích: Kích thước lý tưởng của vùng đệm tương ứng với bộ nhớ tối đa chẳng hạn.
Lưu ý: Nếu Tổng bộ nhớ máy chủ> Bộ nhớ máy chủ mục tiêu, thì nó gợi ý áp lực bộ nhớ.
Tập lệnh bên dưới sẽ giúp bạn tìm các thông báo Bộ nhớ THẤP hoặc CAO từ sys.dm_os_ring_buffers
- phiên sức khỏe hệ thống:
SELECT CONVERT (varchar(30), GETDATE(), 121) as [RunTime],
dateadd (ms, (rbf.[timestamp] - tme.ms_ticks), GETDATE()) as [Notification_Time],
cast(record as xml).value('(//Record/ResourceMonitor/Notification)[1]', 'varchar(30)') AS [Notification_type],
cast(record as xml).value('(//Record/MemoryRecord/MemoryUtilization)[1]', 'bigint') AS [MemoryUtilization %],
cast(record as xml).value('(//Record/MemoryNode/@id)[1]', 'bigint') AS [Node Id],
cast(record as xml).value('(//Record/ResourceMonitor/IndicatorsProcess)[1]', 'int') AS [Process_Indicator],
cast(record as xml).value('(//Record/ResourceMonitor/IndicatorsSystem)[1]', 'int') AS [System_Indicator],
cast(record as xml).value('(//Record/MemoryNode/ReservedMemory)[1]', 'bigint') AS [SQL_ReservedMemory_KB],
cast(record as xml).value('(//Record/MemoryNode/CommittedMemory)[1]', 'bigint') AS [SQL_CommittedMemory_KB],
cast(record as xml).value('(//Record/MemoryNode/AWEMemory)[1]', 'bigint') AS [SQL_AWEMemory],
cast(record as xml).value('(//Record/MemoryNode/SinglePagesMemory)[1]', 'bigint') AS [SinglePagesMemory],
cast(record as xml).value('(//Record/MemoryNode/MultiplePagesMemory)[1]', 'bigint') AS [MultiplePagesMemory],
cast(record as xml).value('(//Record/MemoryRecord/TotalPhysicalMemory)[1]', 'bigint') AS [TotalPhysicalMemory_KB],
cast(record as xml).value('(//Record/MemoryRecord/AvailablePhysicalMemory)[1]', 'bigint') AS [AvailablePhysicalMemory_KB],
cast(record as xml).value('(//Record/MemoryRecord/TotalPageFile)[1]', 'bigint') AS [TotalPageFile_KB],
cast(record as xml).value('(//Record/MemoryRecord/AvailablePageFile)[1]', 'bigint') AS [AvailablePageFile_KB],
cast(record as xml).value('(//Record/MemoryRecord/TotalVirtualAddressSpace)[1]', 'bigint') AS [TotalVirtualAddressSpace_KB],
cast(record as xml).value('(//Record/MemoryRecord/AvailableVirtualAddressSpace)[1]', 'bigint') AS [AvailableVirtualAddressSpace_KB],
cast(record as xml).value('(//Record/@id)[1]', 'bigint') AS [Record Id],
cast(record as xml).value('(//Record/@type)[1]', 'varchar(30)') AS [Type],
cast(record as xml).value('(//Record/@time)[1]', 'bigint') AS [Record Time],
tme.ms_ticks as [Current Time]
FROM sys.dm_os_ring_buffers rbf
cross join sys.dm_os_sys_info tme
where rbf.ring_buffer_type = 'RING_BUFFER_RESOURCE_MONITOR'
--and cast(record as xml).value('(//Record/ResourceMonitor/Notification)[1]', 'varchar(30)') = 'RESOURCE_MEMPHYSICAL_LOW'
ORDER BY rbf.timestamp ASC
Một số tài liệu tham khảo tốt: