Nếu tôi có 8GB RAM trong máy chủ và tôi chạy 4 phiên bản SQL Express, tổng giới hạn bộ nhớ được sử dụng bởi SQL Server là 1GB hay 4GB?
Mỗi phiên bản có thể sử dụng tối đa 1GB bộ nhớ cho vùng đệm . Mỗi phiên bản có thể sử dụng tổng cộng hơn 1GB một chút vì không phải tất cả các cấp phát bộ nhớ đều đi qua nhóm bộ đệm. Trong trường hợp của bạn, bộ nhớ tối đa được sử dụng trong bốn trường hợp cho nhóm bộ đệm sẽ là 4GB.
Để xác nhận, tôi đã bắt đầu hai phiên bản của SQL Server 2008 Express Engine Engine, thực hiện một số hoạt động để tải lên các vùng đệm (riêng biệt) và sau đó xem xét việc sử dụng bộ nhớ theo trường hợp theo một số cách, ví dụ như sử dụng DBCC MEMORYSTATUS hoặc bằng cách đếm số lượng bộ đệm bằng sys.dm_os_buffer_descriptors DMV.
Các số sử dụng bộ nhớ vật lý dưới đây được lấy bằng các truy vấn đồng thời đối với hệ thống DMV sys.dm_os_ process_memory trên mỗi phiên bản của công cụ cơ sở dữ liệu:
SELECT
dopm.physical_memory_in_use_kb
FROM sys.dm_os_process_memory AS dopm;
Đầu ra:
╔═══════════╦═══════════╗
║ Instance1 ║ Instance2 ║
╠═══════════╬═══════════╣
║ 1102872 ║ 1059812 ║
╚═══════════╩═══════════╝
Mỗi trong số này vượt quá 1GB vì tổng mức sử dụng bộ nhớ vật lý bao gồm nhiều hơn là chỉ sử dụng nhóm bộ đệm, như đã đề cập trước đây.
Có nên chạy nhiều phiên bản như thế này để cho phép mỗi cơ sở dữ liệu sử dụng tài nguyên tốt hơn (giả sử rằng máy chủ có nhiều tài nguyên)?
Nếu cơ sở dữ liệu trên mỗi phiên bản là độc lập về chức năng thì ít nhất có thể chạy được nhiều phiên bản Express theo cách này, mặc dù bạn cần chú ý cẩn thận đến cấu hình và việc bảo trì có thể phức tạp hơn.
Bạn có thể được phục vụ tốt hơn khi sử dụng phiên bản khác, chẳng hạn như Phiên bản dành cho nhà phát triển đầy đủ tính năng (và rất rẻ), nếu mục đích sử dụng phù hợp với giấy phép). Bạn sẽ cần phải nói nhiều hơn về các trường hợp để có được một câu trả lời rõ ràng về điểm này.
SQL Server Database Engine
phương tiệnA Single Instance
. Bất cứ khi nào bạn phải thay đổi máy chủ hộp thoại kết nối mà bạn đang kết nối (ví dụlocalhost\dev
vslocalhost\test
) đó là "Trường hợp" mới hoặc "Công cụ" mới. Chỉ cần nghĩ rằng tôi sẽ làm rõ điều đó.