Bộ nhớ SQL Server Express và CPU có giới hạn cho mỗi phiên bản không?


32

Nếu tôi có 8GB RAM trong máy chủ và tôi chạy 4 phiên bản SQL Server Express, thì tổng giới hạn bộ nhớ mà SQL Server sử dụng là 1GB hay 4GB?

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)?

Câu trả lời:


27

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.

Chiết xuất BOL

Để 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.


3
Cũng lưu ý, cho người đọc sắc sảo: SQL Server Database Enginephương tiện A 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\devvs localhost\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 đó.
jcolebrand

7

Mỗi trường hợp tính riêng biệt vì nó có một quy trình riêng.


1
Tôi giả sử rằng bạn chắc chắn rằng bộ giới hạn không được áp dụng trên tất cả các quy trình?

-8

Trong SQL Express, công cụ cơ sở dữ liệu chỉ có thể tiêu thụ RAM 1 GB và bất kỳ DB nào cũng không thể lớn hơn 10 GB.

Vì vậy, 4 trường hợp vẫn sẽ phải chia sẻ RAM 1 GB đó.

Bạn có thể tìm hiểu nhiều hơn nữa tại http://msdn.microsoft.com/en-us/l Library / cc645993 (v = MySQL.110) .aspx .

Một cuộc thảo luận tương tự ở đây về Stack Overflow nói rằng đây là câu trả lời đúng BTW, vì vậy không cần phải downvote: https://stackoverflow.com/questions/1169634/limemony-of-sql-server-express

Trang này cũng nói như vậy, mặc dù đó là về SQL Server Express 2005: http://www.edugeek.net/forums/windows-server-2000-2003/55183-sql-server-express-2005-memory-limit- per-instance.html


3
Không nhất thiết phải theo - đó là 1 công cụ cho mỗi máy chủ hoặc mỗi phiên bản?

1
OK, điều đó có nghĩa là nó, nhưng cũng có thể là họ đã bỏ lỡ nó trên dòng giới hạn bộ nhớ.

1
Chỉ vì nó trên internet, nó phải là sự thật. Họ sẽ không bao giờ để một cái gì đó sai trên internet. ~ Nói rằng để nói rằng vấn đề ở đây là phải có một quy trình quản lý hoặc một cái gì đó được đưa vào HĐH với mục đích duy nhất là hạn chế tất cả SQL Express mãi mãi. Tôi thực sự không nghĩ rằng điều đó đã xảy ra (AKA hoàn toàn không xảy ra, dựa trên thực tế là tôi thở oxy và có thể theo logic rất tốt) vì vậy thực tế vấn đề là chính quá trình này quản lý lượng RAM được đã sử dụng.
jcolebrand

2
Bắt đầu mọi người loại bỏ downvote về những gì tự nhiên là một câu trả lời xấu không có khả năng giúp bạn nâng cao, bất kể bạn trích dẫn từ nguồn nào. Nếu bạn thực sự muốn trích dẫn nguồn, hãy tải lên một số trường hợp và hiển thị tải thực tế của chúng trong bộ nhớ. Đó là cách duy nhất để biết chắc chắn. Hoặc, hoặc hiển thị cho chúng tôi mã Microsoft chi phối hành vi của SQL Express. Đó luôn là quản lý theo thể hiện, bởi vì mỗi dịch vụ đều khép kín từ trên xuống dưới. Tất cả các dịch vụ quản lý làm việc trên các cổng.
jcolebrand

2
Maximum memory utilized (SQL Server Database Engine)Lưu ý cách họ sử dụng thuật ngữ tương tự ở đó như trên dòng: Maximum Compute Capacity Used by a Single Instance (SQL Server Database Engine)1(đối với những người chơi ở nhà, quan điểm của họ là cùng một phép đo) msdn.microsoft.com/en-us/l Library / thép và tôi cũng vậy thích cách câu trả lời trên SO được liên kết đến là SAI SAU. Bắt đầu với "1 lõi hoặc 4 ổ cắm", các biên tập viên thậm chí không thể sao chép-dán chính xác.
jcolebrand
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.