Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Không có đủ bộ nhớ ảo khi bạn có một số lớn các cơ sở dữ liệu trong SQL Server

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:316749
TRIỆU CHỨNG
Có thể không có đủ không gian địa chỉ ảo có sẵn trong quá trình Microsoft SQL Server nếu tất cả các điều kiện sau là đúng khi bạn đang chạy SQL Server với mặc định giá trị cấu hình:
  • Hệ phục vụ có 2 GB hoặc thêm bộ nhớ RAM.
  • Có rất nhiều cơ sở dữ liệu trên hệ thống (cho Ví dụ, hơn 500).
  • Hầu hết các cơ sở dữ liệu được Cập Nhật (ví dụ, các cơ sở dữ liệu không có một tình trạng "đọc chỉ").
  • Không có đủ người dùng hoạt động đồng thời kết nối đến sử dụng hầu hết các chủ đề của công nhân SQL Server 255.
SQL Server có thể tạo ra các thông báo lỗi sau đây sau khi các không gian địa chỉ ảo toàn bộ 2 GB được sử dụng lên (hoặc sau khi toàn bộ 3-GB ảo không gian địa chỉ được sử dụng trên SQL Server Phiên bản doanh nghiệp với các / 3 GB chuyển tập tin Boot.ini).

Thư 1

Lỗi: 17802, mức độ nghiêm trọng: nhà nước ngày 18: 3
Không thể tạo chủ đề sự kiện máy chủ.

Thư 2

SQL Server không có thể đẻ trứng process_loginread sợi.

Tin nhắn 3

Chú Ý: Xoá bộ nhớ cache thủ tục để giải phóng bộ nhớ tiếp giáp.

Phân phối đệm: Bị đánh cắp = 3454 miễn phí = 2540 thủ tục = 138
Inram = 0 bẩn = 1108 giữ = 35
I / O = 0, Latched = 0, khác = 214821
Bộ đệm tính: Cam kết = 222096 Target = 222096 băm = 215964
InternalReservation = 547 ExternalReservation = 0 phút miễn phí = 512
Thủ tục Cache: TotalProcs = 8 TotalPages = 138 InUsePages = 138
Năng động trình quản lý bộ nhớ: bị đánh cắp = 3556
OS = 497 tổng = 1706
Truy vấn kế hoạch = 755 Optimizer = 0
Tiện ích = 9 kết nối = 1583
Bộ nhớ toàn cầu đối tượng: Tài nguyên = 1119 ổ khóa = 163 XDES = 1 SQLCache = nhân rộng 90 = 5 LockBytes = 2 ServerGlobal = 20
Truy vấn bộ nhớ Manager: cấp = chờ đợi 0 = 0 tối đa = 164370 có sẵn = 164370
NGUYÊN NHÂN
Cho mỗi cơ sở dữ liệu Cập Nhật, SQL Server phân bổ ít một 64 KB khối để sử dụng trong định dạng hồ sơ đăng nhập trước khi ghi để đĩa. Phân chia này xảy ra khi hồ sơ đăng nhập đầu tiên được tạo ra cho các cơ sở dữ liệu, chẳng hạn như trong một CHÈN, Cập Nhật, hoặc xóa tuyên bố. Tùy thuộc vào các hoạt động và kích thước của các hồ sơ đăng nhập được tạo ra, tiếp theo Sửa đổi có thể kích hoạt việc phân bổ của bổ sung 64-KB phân bổ. SQL Server 7.0 sẽ phân bổ không có hơn ba 54-KB khối. Trong SQL Server 2000, trên số lượng phân bổ cho mỗi cơ sở dữ liệu là một hàm số của bộ xử lý SQL Server được cấu hình để sử dụng.
CÁCH GIẢI QUYẾT KHÁC
Sử dụng các -g tham số khởi động để lại bổ sung, ưa thổ lộ bộ nhớ ảo có sẵn cho các cơ sở dữ liệu phân bổ. Các -g tham số được diễn tả trong Readme.txt SQL Server 7.0 dịch vụ gói, và trong SQL Server 2000 cuốn sách trực tuyến. Thông tin thêm"" phần trong bài viết này bao gồm các cài đặt Microsoft khuyến cáo bạn sử dụng để xác định giá trị thích hợp cho thiết đặt này.
THÔNG TIN THÊM
Trên một máy tính với 2 GB hoặc thêm bộ nhớ RAM, SQL Server dự trữ tất cả nhưng 256 MB (SQL Server 7.0) hoặc 384 MB (SQL Server 2000) của địa chỉ ảo vũ trụ trong quá trình khởi động để sử dụng bên hồ bơi bộ đệm. Ngoài ra, để lưu giữ bộ nhớ cache dữ liệu và thủ tục, SQL Server sử dụng bộ nhớ đệm hồ bơi để dịch vụ hầu hết khác yêu cầu bộ nhớ từ quá trình SQL Server được ít hơn 8 KB. Bộ nhớ ưa thổ lộ còn lại được dự định để sử dụng với nhau phân bổ không thể được phục vụ từ hồ bơi bộ đệm. Những phân bổ bao gồm, nhưng không giới hạn đối với:
  • Ngăn xếp và chặn môi trường liên quan đến chủ đề cho bất kỳ chủ đề của SQL Server tạo ra. Sau khi SQL Server tạo ra tất cả 255 người lao động chủ đề, điều này là khoảng 140 MB.
  • Phân bổ được thực hiện bởi DLLs khác hoặc các quá trình đó đang chạy trong không gian địa chỉ SQL Server (mà thay đổi từ hệ thống hệ thống), chẳng hạn như:
    • OLE DB các nhà cung cấp từ bất kỳ máy chủ được liên kết.
    • COM các đối tượng được nạp bằng cách sử dụng các sp_OA hệ thống lưu trữ thủ tục hoặc mở rộng được lưu trữ thủ tục.
  • Bất kỳ hình ảnh (.exe hoặc .dll) mà được nạp trong địa chỉ không gian, trong đó thường được sử dụng around 20 MB, nhưng có thể nhiều hơn nếu bạn đang sử dụng các máy chủ được liên kết, sp_OA, hoặc mở rộng thủ tục được lưu trữ.
  • Quá trình heap và bất kỳ heaps khác mà có thể SQL Server tạo. Trong quá trình khởi động, điều này thường là 10 MB, nhưng có thể nhiều hơn nếu bạn đang sử dụng các máy chủ được liên kết, sp_OA, hoặc mở rộng thủ tục được lưu trữ.
  • Phân bổ từ SQL Server các quá trình lớn hơn 8 KB, chẳng hạn như những yêu cầu cho kế hoạch lớn truy vấn, gửi và nhận bộ đệm nếu các Kích thước gói dữ liệu mạng cấu hình tùy chọn là gần với 8 KB, và như vậy. Thấy điều này số, hãy tìm những OS dành riêng giá trị đó báo cáo trong DBCC MEMORYSTATUS và đó là báo cáo như số lượng các trang 8-KB. Giá trị điển hình này là 5 MB.
  • Một mảng theo dõi thông tin trạng thái cho mỗi đệm mà là trong hồ bơi bộ đệm. Điều này thường là khoảng 20 MB, trừ khi SQL Server chạy với địa chỉ Windowing phần mở rộng (AWE) được kích hoạt, trong trường hợp nó có thể cao hơn đáng kể.
Trên các hệ thống có một số lớn các cơ sở dữ liệu, các Phân bổ 64-KB được yêu cầu cho đăng nhập định dạng có thể chiếm tất cả các còn lại bộ nhớ ảo. Vào thời điểm đó, phân bổ tiếp theo có thể không, kết quả là một hoặc nhiều lỗi được liệt kê trong "Triệu chứng" phần trong bài viết này.

Bằng cách sử dụng các -g tham số khởi động, bạn có thể hướng dẫn các SQL Server để lại bộ nhớ ảo bổ sung có sẵn để kết hợp các đăng nhập liên quan đến phân bổ và khác phân bổ bình thường không chạy ra khỏi không gian địa chỉ ảo.

Danh sách bảng sau một số khoản bắt đầu từ điểm cho các -g giá trị tùy thuộc vào số lượng các cơ sở dữ liệu và máy chủ Phiên bản:
Cơ sở dữ liệuSQL Server 7.0SQL Server 2000
250-g134N/A
500-g185N/A
750-g237N/A
1000-g288-g288
1250-g340-g340
1500-g392-g392
Bảng này đã được tính toán bằng cách sử dụng các giá trị điển hình mà được liệt kê và nó cũng dựa trên giả định rằng không có máy chủ được liên kết hoạt động, sp_OA hoặc mở rộng thủ tục được lưu trữ sử dụng. Đó là dựa trên các giả định rằng bạn không sử dụng AWE, và rằng Profiler SQL không phải trong sử dụng. Bất kỳ các điều kiện có thể yêu cầu bạn để tăng giá trị của -g.

Microsoft khuyến cáo bạn hãy nghiêm trọng xem xét trước khi bạn chạy một máy chủ với bộ cơ sở dữ liệu hơn này bởi vì các trên cao là bắt buộc các con số này của cơ sở dữ liệu trên hệ thống là tham gia rất nhiều bộ nhớ ảo từ hồ bơi đệm có thể dẫn đến hiệu suất kém cho hệ thống như một toàn thể.

Ngoài ra, việc tạo ra rất nhiều cơ sở dữ liệu có ảnh hưởng quan trọng nhất trên bộ nhớ ảo. Có cấp phát bộ nhớ cho mỗi sở dữ liệu có thể gây ra một điều kiện ra bộ nhớ đệm hồ bơi. Ví dụ, bạn có thể nhận được thông báo lỗi sau:
Lỗi: 701, mức độ nghiêm trọng: 17, bang: 123.
Không có hệ thống không đủ bộ nhớ để chạy truy vấn này.
Loại điều kiện ra bộ nhớ có thể phổ biến hơn trong SQL Server 2005 vì SQL Server 2005 theo dõi thêm siêu dữ liệu cho mỗi sở dữ liệu hơn phiên bản trước của SQL Server.

Khi bạn theo dõi việc sử dụng chỉ mục bằng cách sử dụng các sys.dm_db_index_usage_stats thủ tục được lưu trữ, các hoạt động có thể yêu cầu một số lượng đáng kể các bộ nhớ. Thao tác yêu cầu một số lượng đáng kể các bộ nhớ nếu mỗi cơ sở dữ liệu đã có rất nhiều chỉ số.

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 316749 - Xem lại Lần cuối: 08/27/2011 23:10:00 - Bản sửa đổi: 2.0

Microsoft SQL Server 7.0 Standard Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Standard Edition

  • kberrmsg kbtshoot kbnofix kbprb kbmt KB316749 KbMtvi
Phản hồi