Tôi đang xây dựng một ứng dụng mà tôi dự định nhúng SQL Server 2012 Express làm kho dữ liệu chính. Khi thử nghiệm trên máy phát triển của tôi (Win7-32 với RAM 3 GB), tôi chưa bao giờ quan sát sqlservr.exe
quá trình sử dụng hơn 1GB RAM như tôi mong đợi từ các giới hạn mở rộng phần cứng được công bố cho phiên bản Express của SQL Server.
Sau đó, tôi đã chuyển ứng dụng của mình sang một máy cấp máy chủ (Win Server 2008R2 64-bit với 16GB RAM) để đánh giá hiệu năng của nó ở đó và rất ngạc nhiên khi thấy sqlservr.exe
quá trình này nhanh chóng mở rộng lên khoảng 9,5 GB RAM và vẫn ở đó.
Tôi đã khởi động lại nó một vài lần để xem liệu điều đó có ảnh hưởng gì không, nhưng mỗi lần, quá trình nhanh chóng trở lại ~ 9,5GB. Bây giờ tôi chắc chắn rất vui khi SQL Server Express sử dụng RAM của mình, nhưng tôi muốn biết liệu đây có phải là hành vi được mong đợi hay không để tôi dựa vào mức hiệu suất dựa trên việc sử dụng RAM không chính xác.
FYI, phiên bản SQL Server trên máy chủ của tôi, theo SELECT @@VERSION
, là:
Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64)
Oct 19 2012 13:38:57
Copyright (c) Microsoft Corporation
Express Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
Số 9,5 GB của tôi đến từ số "Bộ làm việc riêng" trong Trình quản lý tác vụ. Bảng đầu ra đầu tiên từ DBCC memorystatus
(mặc dù trên máy chủ hiện không hoạt động) bên dưới:
PROCESS/SYSTEM COUNTS
Available Physical Memory 5543616512
Available Virtual Memory 8734902411264
Available Paging File 22471094272
Working Set 9664200704
Percent of Committed Memory in WS 99
Page Faults 2627510
System physical memory high 1
System physical memory low 0
Process physical memory low 0
Process virtual memory low 0
Đầu ra từ truy vấn được đề xuất của spaghettidba trên sys.dm_os_memory_clerks
:
MEMORYCLERK_SQLBUFFERPOOL 1410
OBJECTSTORE_LOCK_MANAGER 256
MEMORYCLERK_SQLCLR 38
MEMORYCLERK_SOSNODE 26
CACHESTORE_SQLCP 11
cộng thêm ~ 10 mục nhỏ hơn có tổng giá trị dưới 30MB.
MEMORYCLERK_SQLBUFFERPOOL 1410 OBJECTSTORE_LOCK_MANAGER 256 MEMORYCLERK_SQLCLR 38 MEMORYCLERK_SOSNODE 26 CACHESTORE_SQLCP 11
Và sau đó một vài cái nhỏ nữa có tổng giá trị <30MB. Có vẻ lạ đối với tôi. -arg- ở định dạng bình luận.