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

Làm thế nào để làm giảm phân trang của bộ nhớ đệm hồ bơi trong các phiên bản 64-bit của SQL Server

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch thuật của Microsoft và có thể được Cộng đồng Microsoft chỉnh sửa lại thông qua công nghệ CTF thay vì một biên dịch viên chuyên nghiệp. Microsoft cung cấp các bài viết được cả biên dịch viên và phần mềm dịch thuật thực hiện và cộng đồng chỉnh sửa lại để 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 nhiều ngôn ngữ Tuy nhiên, bài viết do máy dịch hoặc thậm chí cộng đồng chỉnh sửa sau không phải lúc nào cũng hoàn hảo. Các 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, 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.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này: 918483
Tóm tắt
Microsoft SQL Server thực hiện quản lý bộ nhớ năng động dựa trên yêu cầu bộ nhớ của hiện tại tải và các hoạt động trên hệ thống. Trên một Windows Server 2003 hoặc Windows XP hoặc sau này phiên bản hệ thống, SQL Server có thể sử dụng các cơ chế thông báo bộ nhớ được cung cấp bởi QueryMemoryResourceNotification Windows API. Trên một hệ thống dựa trên Microsoft Windows 2000 Server, SQL Server định kỳ tính toán miễn phí bộ nhớ vật lý trên hệ thống bằng cách sử dụng API Windows bản địa. Dựa trên thông tin này từ QueryMemoryResourceNotification Windows API hoặc từ tính toán bộ nhớ, SQL Server đáp ứng hiện nay tình hình bộ nhớ trên một hệ thống cụ thể. Điều này cung cấp những lợi ích sau:
  • Hệ thống không trang trong tập làm việc của trình SQL Server.
  • bộ máy cơ sở dữ liệu cần thiết trang có sẵn trong bộ nhớ để làm giảm nhu cầu I/O vật chất.
Để biết thêm chi tiết, xem chủ đề "quản lý bộ nhớ năng động" và chủ đề "Tùy chọn bộ nhớ máy chủ" trong SQL Server sách trực tuyến.
Triệu chứng
Trong phiên bản 64-bit của SQL Server, các vấn đề có thể xảy ra. Ví dụ, các vấn đề sau đây có thể xảy ra:
  • Hiệu suất của máy chủ SQL giảm đột ngột.
  • Một máy tính đang chạy SQL Server dừng đáp ứng trong một thời gian ngắn.
  • Một lỗi quá thời gian xảy ra cho các ứng dụng kết nối với SQL Server.
  • Vấn đề xảy ra khi bạn chạy lệnh thậm chí đơn giản hoặc sử dụng các ứng dụng trên hệ thống.
Nếu bạn cài đặt chuyên biệt SQL Server 2005 Service Pack 2 (SP2) hoặc một phiên bản sau này, một trong các thông báo lỗi sau đây được kí nhập ở Nhật ký lỗi SQL Server khi những vấn đề này xảy ra:
Thông báo lỗi 1
ngày giờ spid1s A phần quan trọng của bộ nhớ quá trình máy chủ sql đã được paged ra. Điều này có thể dẫn đến một sự xuống cấp hiệu suất. Thời gian: 0 giây. Làm việc thiết (KB): 1086400, cam kết (KB): 2160928, bộ nhớ sử dụng: 50%.
Thông báo lỗi 2
ngày giờ spid1s A phần quan trọng của bộ nhớ quá trình máy chủ sql đã được paged ra. Điều này có thể dẫn đến một sự xuống cấp hiệu suất. Thời gian thực hiện: 315 giây. Làm việc thiết (KB): 410156, cam kết (KB): 2201296, bộ nhớ sử dụng: 18%.
Thông báo lỗi 3
ngày giờ spid1s A phần quan trọng của bộ nhớ quá trình máy chủ sql đã được paged ra. Điều này có thể dẫn đến một sự xuống cấp hiệu suất. Thời gian thực hiện: 646 giây. Làm việc thiết (KB): 901904, cam kết (KB): 2215752, bộ nhớ sử dụng: 40%.

nhóm hỗ trợ Microsoft SQL Server cũng đã quan sát thông báo bổ sung lỗi hoặc cảnh báo được ghi lại trong SQL Server Error log hoặc trong các bản ghi sự kiện của Windows. Các thư này giống như sau:
2009-05-05 15:43:56.01 Server      Resource Monitor (0x13c43) Worker 0x0412C1E8 appears to be non-yielding on Node 0. Memory freed: 34152 KB. Approx CPU Used: kernel 171 ms, user 140 ms, Interval: 125093.2009-05-05 12:54:52.18 Server      * *******************************************************************************2009-05-05 12:54:52.18 Server      * BEGIN STACK DUMP:2009-05-05 12:54:52.18 Server      *   05/05/08 12:54:52 spid 02009-05-05 12:54:52.18 Server      * Non-yielding Resource Monitor2009-05-05 12:54:52.18 Server      * *******************************************************************************2009-06-10 09:13:53.44 Server      * *******************************************************************************2009-06-10 09:13:53.44 Server      * BEGIN STACK DUMP:2009-06-10 09:13:53.44 Server      *   06/10/09 09:13:53 spid 02009-06-10 09:13:53.44 Server      * Non-yielding IOCP Listener2009-06-10 09:13:53.44 Server      * *******************************************************************************2009-06-10 09:13:55.85 spid2s      LazyWriter: warning, no free buffers found.2009-07-15 13:27:45.35 spid4s      AppDomain xx (SQLCLR.dbo[runtime].xx) is marked for unload due to memory pressure.2009-07-15 13:27:45.35 spid4s      AppDomain xx (SQLCLR.dbo[runtime].xx) unloaded.2009-07-15 13:37:51.42 Logon       Error: 17189, Severity: 16, State: 1.2009-07-15 13:37:51.42 Logon       SQL Server failed with error code 0xc0000000 to spawn a thread to process a new login or connection. Check the SQL Server error log and the Windows event logs for information about possible related problems. [CLIENT: xx.xxx.xx.xx]Event Type:	ErrorEvent Source:	SQLBrowserEvent ID:	8Description: The SQLBrowser service was unable to process a client request. 
Những thông báo bổ sung lỗi hoặc cảnh báo có thể xuất hiện cùng với lỗi "một phần quan trọng của bộ nhớ quá trình máy chủ sql đã được paged ra" tin thư thoại. Trong một số trường hợp, các thông báo bổ sung lỗi hoặc cảnh báo đã không xuất hiện cùng với các thông báo lỗi.

Nếu bạn nhận thấy một trong những thông báo lỗi hoặc cảnh báo, hãy xem xét SQL Server làm việc tập hợp phân trang đó được thảo luận trong bài viết này là một trong những nguyên nhân có thể, nhưng không phải là nguyên nhân duy nhất. Những thông báo bổ sung lỗi hoặc cảnh báo có thể được kí nhập bởi vì nhiều điều kiện khác hoặc các nguyên nhân.
Nguyên nhân
Vấn đề này xảy ra bởi vì các trang hệ điều hành Windows ra tập làm việc của trình SQL Server.

Các thông điệp lỗi đang kí nhập khi tập làm việc của một quá trình SQL Server đạt đến 50 phần trăm hoặc ít hơn bộ nhớ đó là cam kết đến quá trình SQL Server. Bạn có thể sử dụng các thông báo lỗi để xác định trường hợp trong đó hiệu suất máy chủ SQL giảm đáng kể bởi vì các trang hệ điều hành Windows ra tập làm việc của trình SQL Server. Ngoài ra, các thông điệp lỗi đang kí nhập mỗi năm phút trong 30 phút đầu tiên. Sau 30 phút đầu tiên, tần số thông điệp lỗi này tăng gấp đôi cho đến khi tần số đạt tối đa của một ngày.

Khi vấn đề này xảy ra, bạn có thể nhận thấy rằng làm việc tập hợp của các ứng dụng khác trên hệ thống cũng paged ra xung quanh cùng một lúc.
Để biết thêm thông tin, ghé thăm web site sau của Microsoft: Ngoài ra, một vấn đề được biết đến tồn tại trong SQL Server trong đó bạn có thể nhận được một thể hiện của thông báo lỗi này. Thông báo nhật kí lỗi trong SQL Server Error log trong quá trình khởi động của SQL Server. Thông báo lỗi có thể là một cảnh báo sai. Do đó, nó có thể không chỉ ra rằng làm việc đặt cắt đã thực sự xảy ra. Để biết thêm chi tiết, hãy ghé thăm website sau của Microsoft:
Cách giải quyết khác
Trước khi bạn cố gắng làm việc xung quanh vấn đề này, thực hiện các bước trong phần "Làm thế nào để khắc phục vấn đề này" để giải quyết vấn đề này.

Nếu bạn vẫn gặp phải vấn đề này, bạn có thể ngăn cản hệ điều hành Windows từ phân trang trong bộ nhớ đệm hồ bơi của quá trình SQL Server bằng khóa bộ nhớ được cấp phát cho bơi đệm bộ nhớ vật lý. Bạn khóa bộ nhớ bằng cách gán các khóa trang trong bộ nhớ người dùng phải tới tài khoản người dùng được sử dụng như là tài khoản khởi động của bản ghi dịch vụ SQL Server.

Lưu ý: Đối với phiên bản 64-bit của SQL Server, chỉ SQL Server Enterprise Edition có thể sử dụng khóa trang trong bộ nhớ người dùng ngay. Điều này áp dụng cho SQL Server 2005 [RTM, SP1, SP2, SP3] và cho SQL Server 2008 [RTM và SP1]. SQL Server 2008 SP1 Cumulative Update 2 và SQL Server 2005 SP3 Cumulative Update 4 giới thiệu hỗ trợ cho các phiên bản SQL Server tiêu chuẩn để sử dụng khóa trang trong bộ nhớ người dùng phải. Để biết thêm thông tin về hỗ trợ cho các trang bị khóa trên 64-bit hệ thống, nhấp vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
970070 Hỗ trợ cho các trang khóa vào hệ thống SQL Server 2005 Standard Edition 64-bit và vào hệ thống SQL Server 2008 Standard Edition 64-bit
Để gán khóa trang trong bộ nhớ người dùng phải, hãy làm theo các bước sau:
  1. Nhấp vào Bắt đầu, bấm chạy, loại gpedit.msc, và sau đó nhấp vào OK.

    Lưu ý:chính sách nhóm hộp thoại xuất hiện.
  2. Mở rộng ComputerConfiguration, và sau đó mở rộng Thiết đặt Windows.
  3. Mở rộng cài đặt chuyên biệt bảo mật, và sau đó mở rộngChính sách địa phương.
  4. Nhấp vào Chuyển nhượng quyền sử dụng, và sau đó bấm đúp chuột khóa trang inmemory.
  5. Trong hộp thoại Thiết đặt chính sách an ninh địa phương, hãy nhấp vào Thêm người dùng hoặc nhóm.
  6. Trong hộp thoại chọn người dùng hoặc nhóm , thêm tài khoản có quyền để chạy các tập tin Sqlservr.exe, và sau đó nhấp vàoOK.
  7. Đóng hộp thoại Nhóm chính sách .
  8. Khởi động lại bản ghi dịch vụ SQL Server.
Sau khi bạn gán khóa trang trong bộ nhớ người dùng phải và bạn khởi động lại bản ghi dịch vụ SQL Server, hệ điều hành Windows không còn các trang trong bộ nhớ đệm hồ bơi trong SQL Server xử lý. Tuy nhiên, hệ điều hành Windows có thể vẫn còn trang ra bộ nhớ Hồ bơi nonbuffer trong quá trình SQL Server.

Bạn có thể xác nhận rằng người sử dụng phải được sử dụng bởi dụ của SQL Server bằng cách đảm bảo rằng sau bài viết được viết trong SQL Server Error Log lúc khởi động:
Sử dụng các trang bị khóa cho hồ bơi bộ đệm
Thư này chỉ áp dụng cho phiên bản 64-bit của SQL Server.For biết thêm thông tin về thông báo này trong ERRORLOG, ghé thăm Web site sau của Microsoft: Khi các trang hệ điều hành Windows ra bộ nhớ Hồ bơi nonbuffer, bạn vẫn có thể gặp phải vấn đề hiệu suất. Tuy nhiên, các thông báo lỗi được đề cập trong phần "Triệu chứng" không đăng trong Nhật ký lỗi SQL Server. Hành vi này xảy ra bởi vì tập làm việc của một quá trình SQL Server thường không đạt 50 phần trăm hoặc ít hơn bộ nhớ cam kết.
Thông tin thêm

Làm thế nào để khắc phục vấn đề này

Để khắc phục vấn đề này, hãy làm theo các bước sau:
  1. Để giải quyết các vấn đề được biết đến gây ra hệ điều hành Windows để trang trong tập làm việc của trình SQL Server, áp dụng hotfix được mô tả trong bài viết Cơ sở tri thức Microsoft sau.

    Lưu ý Hotfixes được tích lũy. Một phiên bản sau này của một hotfix chứa các phiên bản trước của hotfix đó.
    • Microsoft đã tìm thấy một vấn đề mà có thể gây ra phiên bản 64-bit của SQL Server làm việc thiết lập để được tỉa. Để biết thêm thông tin, hãy nhấp vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
      905865 Các kích thước của các tập làm việc của tất cả các quá trình trong một phiên giao diện điều khiển có thể được tỉa khi bạn sử dụng bản ghi dịch vụ đầu cuối để kí nhập vào hoặc kí xuất khỏi máy tính đang chạy Windows Server 2003
    • Máy tính đang chạy Windows Server 2003 có thể quá tích cực khi họ bộ nhớ cache bộ đệm bẩn nếu có một ứng dụng thực hiện I/O buffered, chẳng hạn như một tập tin sao chép hoạt động. Hành vi này có thể gây ra tập làm việc trong SQL Server để được tỉa. Để biết thêm thông tin, hãy nhấp vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
      920739 Bạn có thể gặp một sự giảm xuống trong hiệu suất tổng thể hệ thống khi bạn là sao chép tập tin lớn hơn khoảng 500 MB trong Windows Server 2003 hoặc trong Windows Server 2003 S
    • Tập làm việc của SQL Server có thể được tỉa khi hệ thống đang sử dụng một số tính năng nâng cao Giao thức Kiểm soát Truyền. Để biết thêm thông tin, hãy nhấp vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
      942861 Thông báo lỗi khi một ứng dụng kết nối với SQL Server trên một máy chủ đang chạy Windows Server 2003: "Lỗi chung mạng," "Truyền thông liên kết hỏng", hay "Một vận chuyển cấp lỗi"
    • Trên một sự máy tính đang chạy Windows Server 2003, tiến trình hệ thống có thể tiêu thụ hầu hết bộ nhớ hệ thống có sẵn. Để biết thêm thông tin, hãy nhấp vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
      942486 Tiến trình hệ thống có thể tiêu thụ hầu hết bộ nhớ hệ thống có sẵn trên một máy tính sự đang chạy Windows Server 2003
  2. Nếu một trình khiển trình sử dụng các MmAllocateContiguousMemory chức năng, và nếu nó là tập hợp giá trị của các HighestAcceptableAddress tham số để ít hơn 4 gigabyte (GB), hệ điều hành Windows có thể trang ra tập làm việc của trình SQL Server 64-bit. Để giải quyết vấn đề này, liên hệ với nhà cung cấp của trình khiển trình để cập nhật trình điều khiển. Để biết danh sách trình điều khiển đã gặp vấn đề, hãy xem phần "nhà cung cấp khác" trong bài viết Cơ sở tri thức Microsoft sau:
    2121098 Được giới thiệu hệ thống hoạt động Cập Nhật và các trình điều khiển cho việc cài đặt chuyên biệt SQL Server
  3. Nếu bạn vẫn gặp phải những vấn đề này sau khi bạn áp dụng những hotfixes, áp dụng hotfix Windows giới hạn số lượng các hoạt động cắt cho mỗi quá trình. Để biết thêm thông tin, bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
    938486 Một máy tính dựa trên Windows Server 2003 trở nên không phản hồi vì một chiến dịch trang trí quản lý bộ nhớ đó gây ra bởi một mô-đun không xác định yêu cầu rất nhiều bộ nhớ
    956341 Một máy tính dựa trên Windows Server 2003 trở nên không phản hồi vì một yêu cầu cấp phát bộ nhớ lớn
    Khi trình khiển trình cố gắng cấp phát bộ nhớ, hệ điều hành Windows có thể trang ra làm việc tập hợp của các ứng dụng khác. Hotfix này Windows cho phép bạn sử dụng sự kiện truy tìm để tìm trình khiển trình gây ra vấn đề. Để biết thêm thông tin về trình điều khiển cụ thể mà nguyên nhân hành vi làm việc thiết lập trang trí, hãy xem bài viết MSDN"Xác định trình điều khiển phân phối bộ nhớ tiếp giáp."
  4. Ứng dụng có thể sử dụng bộ nhớ cache của hệ thống quá nhiều, và có thể gây ra một sự tăng trưởng lớn của bộ nhớ cache của hệ thống. Để đáp ứng với sự phát triển của bộ đệm ẩn hệ thống, các hệ thống trang ra tập làm việc của trình SQL Server hoặc các ứng dụng khác. Nếu bạn gặp vấn đề này, bạn có thể sử dụng một số chức năng quản lý bộ nhớ trong ứng dụng. Các chức năng điều khiển hệ thống bộ nhớ cache không gian mà tệp I/O hoạt động có thể sử dụng trong các ứng dụng. Ví dụ, bạn có thể sử dụng các SetSystemFileCacheSize chức năng và các GetSystemFileCacheSize chức năng để kiểm soát hệ thống bộ nhớ cache không gian mà tệp I/O hoạt động có thể sử dụng.

    Bạn có thể sử dụng đối tượng hiệu năng bộ nhớ để xem các giá trị của các quầy trong đối tượng này để xác định liệu hệ thống bộ nhớ cache tập làm việc sử dụng quá nhiều bộ nhớ. Ví dụ, bạn có thể xem các quầy Cache byte và hệ thống bộ nhớ Cache Resident byte. Để biết thêm chi tiết về chủ đề này, ghé thăm Web site sau của Microsoft: Bạn có thể tải về và triển khai các "Microsoft Windows Dynamic Cache dịch vụ" để kiểm soát bộ nhớ được tiêu thụ bởi bộ nhớ cache của hệ thống.
  5. Nếu SQL máy chủ đang chạy cùng với SAP R/3, bạn có thể gặp một vấn đề phân trang. Để biết thêm thông tin, hãy nhấp vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
    931308 Bạn có thể kinh nghiệm phân trang tăng lên đĩa cứng khi bạn chạy một chương trình SAP R/3 trên một máy tính dựa trên Windows Server 2003
  6. Nếu bạn đang chạy SQL Server trên Windows Server 2008, bạn phải áp dụng bản sửa lỗi cho các vấn đề được biết có thể dẫn đến làm việc thiết lập trang trí hoặc không cần thiết bộ nhớ quá mức tiêu thụ của các thành phần hệ điều hành khác. Để biết thêm thông tin, bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:

    971442 Hiệu năng hệ thống của máy chủ trở nên nặng nề giảm khi bạn cố gắng sao chép tập tin từ một máy chủ đang chạy Windows Vista hoặc Windows Server 2008 thông qua một mạng lưới

    974609 Một máy tính đang chạy Windows Server 2008 ngẫu nhiên dừng đáp ứng khi bạn chạy một ứng dụng lớn

    971714 Quá trình thế hệ báo cáo có thể ngừng đáp ứng khi bạn chạy Perfmon.exe với các hoạt động thư mục Diagnostics mẫu để tạo ra một báo cáo về một bộ điều khiển miền dựa trên Windows Server 2008
  7. Nếu bạn đang chạy SQL Server trên cửa sổ phục vụ 2008 R2, bạn phải áp dụng bản sửa lỗi cho các vấn đề được biết có thể dẫn đến làm việc thiết lập trang trí. Để biết thêm chi tiết, nhấp vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
    979149 Một máy tính đang chạy Windows 7 hoặc Windows Server 2008 R2 trở nên không phản hồi khi bạn chạy một ứng dụng lớn

    2155311 Hiệu suất kém xảy ra trên một máy tính mà có NUMA dựa trên bộ vi xử lý và đó chạy Windows Server 2008 R2 hoặc Windows 7 nếu một sợi yêu cầu rất nhiều bộ nhớ là trong vòng đầu tiên 4 GB bộ nhớ

    2468345 Máy tính liên tục thực hiện kém hoặc dừng đáp ứng khi trình điều khiển Storport được sử dụng trong Windows Server 2008 R2

Làm thế nào để xác định bộ nhớ được sử dụng bởi phiên bản 64-bit của SQL Server

Bạn có thể sử dụng theo dõi hiệu suất để xem trang bộ nhớ được sử dụng bởi phiên bản 64-bit của SQL Server. Để làm điều này, giám sát sau đây hiệu suất quầy:
Đối tượng hiệu suất: bộ nhớ
Số lượt truy cập: Các trang/Sec
Để biết thêm chi tiết về làm thế nào để sử dụng truy cập này để xác định trang bộ nhớ, nhấp vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
889654 Làm thế nào để xác định kích thước tập tin trang thích hợp cho 64-bit phiên bản của Windows Server 2003 hoặc Windows XP
Ngoài ra, bạn có thể đo lường tác động của phân trang trên phiên bản 64-bit của SQL Server bằng cách giám sát sau đây hiệu suất quầy:
Đối tượng hiệu suất: quá trình
Số lượt truy cập: Private byte
Ví dụ: sqlservr

Đối tượng hiệu suất: quá trình
Số lượt truy cập: Tập làm việc
Ví dụ: sqlservr
Số lượt truy cập Private byte các biện pháp bộ nhớ đó là hiện đang cam kết. Số lượt truy cập làm việc đặt các biện pháp bộ nhớ vật lý hiện nay bị chiếm đóng bởi quá trình. Phiên bản 64-bit của SQL Server cũng sử dụng quầy hiệu suất sau đây để lộ bộ nhớ phân bổ Hồ bơi đệm:
Đối tượng hiệu suất: quản lý SQL máy chủ: bộ nhớ
Số lượt truy cập: Tổng Server Memory(KB)
Lưu ý: Nếu thể hiện của bản 64-bit của SQL Server là một trường hợp được đặt tên, tên đối tượng hiệu suất là như sau:
MSSQL$InstanceName: Quản lý bộ nhớ
Nếu giá trị của truy cập làm việc đặt sẽ thấp hơn giá trị của số lượt truy cập Tổng số máy chủ Memory(KB), ít nhất một số bộ nhớ là một phần của hồ bơi bộ đệm được trimmed từ SQL Server tập làm việc.

Sau khi bạn gán khóa trang trong bộ nhớ người dùng phải và bạn khởi động lại dịch vụ SQL Server, Hồ bơi đệm của quá trình SQL Server vẫn đáp ứng với bộ nhớ nguồn lực thông báo sự kiện, và nó tự động tăng hoặc giảm để đáp ứng với những sự kiện này. Tuy nhiên, bạn không thể nhìn thấy cấp phát bộ nhớ cho hồ bơi bộ đệm đang bị khóa trong bộ nhớ trong các quầy hiệu suất sau đây:
  • Số lượt truy cập Private byte và truy cập làm việc đặt trong theo dõi hiệu suất
  • Mem sử dụng cột trên tab quá trình trong Task Manager
Sau khi các trang bị khóa, các quầy hiệu suất đại diện cấp phát bộ nhớ trong quá trình SQL Server khi những phân bổ không sử dụng hồ bơi bộ đệm. Số lượt truy cập Tổng số máy chủ Memory(KB) của đối tượng hiệu suất quản lý SQL máy chủ: bộ nhớ chính xác đại diện cho bộ nhớ được cấp phát cho hồ bơi bộ đệm.

Cân nhắc quan trọng trước khi bạn gán "Khóa trang trong bộ nhớ" người sử dụng quyền cho một thể hiện của bản 64-bit của SQL Server

Bạn nên làm cho thêm cân nhắc trước khi bạn gán khóa trang trong bộ nhớ người dùng phải. Nếu bạn chỉ định người dùng này ngay trên hệ thống được đặt cấu hình không chính xác, Hệ thống có thể trở nên không ổn định hoặc kinh nghiệm giảm hiệu suất toàn bộ hệ thống. Ngoài ra, tổ chức sự kiện ID 333 có thể đăng nhập trong trường hợp đăng nhập.

Nếu bạn liên hệ với dịch vụ hỗ trợ khách hàng Microsoft (CSS) cho những vấn đề, kỹ sư CSS có thể yêu cầu bạn để thu hồi quyền này người dùng cho tài khoản người dùng được sử dụng như là tài khoản khởi động của dịch vụ SQL Server. Bước này có thể là cần thiết để thu thập dữ liệu quan trọng hiệu suất CSS kỹ sư có thể sử dụng cho các cấu hình cần thiết của các tùy chọn khác nhau cho SQL Server và cho các ứng dụng khác đang chạy trên hệ thống. Sau khi các kỹ sư CSS thu thập dữ liệu hiệu suất, bạn có thể gán khóa trang trong bộ nhớ người dùng phải sang tài khoản khởi động của dịch vụ SQL Server.

Trước khi bạn gán khóa trang trong bộ nhớ người dùng phải, hãy chắc chắn rằng bạn nắm bắt một Nhật ký hiệu suất màn hình để xác định các yêu cầu bộ nhớ của các ứng dụng và dịch vụ được cài đặt trên hệ thống. Các ứng dụng này cũng bao gồm SQL Server. Để xác định các yêu cầu bộ nhớ, thu thập thông tin đường cơ sở sau:
  • Hãy chắc chắn rằng bạn đặt hệ phục vụ tối đa bộ nhớ tùy chọn và các bộ nhớ máy chủ min tùy chọn đúng. Các tùy chọn này phản ánh chỉ yêu cầu bộ nhớ của hồ bơi đệm của quá trình SQL Server. Các tùy chọn này không bao gồm bộ nhớ được cấp phát cho các thành phần khác trong quá trình SQL Server. Các thành phần này bao gồm:
    • Chủ đề của công nhân SQL Server
    • Cấp phát Multipage của SQL Server quản lý bộ nhớ
    • Các dll và các thành phần trình SQL Server tải trong không gian địa chỉ của trình SQL Server
    • Các hoạt động sao lưu và khôi phục
  • DLL và các thành phần bao gồm các nhà cung cấp база даних OLE, mở rộng thủ tục được lưu trữ, Microsoft COM các đối tượng được sử dụng cho sp_OACreate lưu trữ thủ tục, máy chủ được liên kết, và SQL Server загальномовне середовище виконання. Bộ nhớ được cấp phát cho các thành phần này té ngã theo khu vực hồ bơi nonbuffer của không gian địa chỉ của trình SQL Server. Lý tưởng nhất xác định số lượng tối đa của bộ nhớ toàn bộ quá trình SQL Server có thể sử dụng, bạn phải trừ bộ nhớ được cấp phát cho các thành phần không sử dụng hồ bơi đệm từ tổng bộ nhớ mà bạn muốn trình SQL Server để sử dụng. Sau đó, bạn có thể sử dụng giá trị còn lại để thiết lập hệ phục vụ tối đa bộ nhớ tùy chọn. Trước khi bạn thiết lập hệ phục vụ tối đa bộ nhớ tùy chọn và các bộ nhớ máy chủ min tùy chọn, bạn nên xem xét cẩn thận chủ đề "Thiết lập tùy chọn bộ nhớ bằng tay" trong SQL Server sách trực tuyến.
  • Xác định yêu cầu bộ nhớ của các ứng dụng khác và các thành phần hệ điều hành Windows. Ứng dụng có thể bao gồm SQL Server thành phần khác, ví dụ, đại lý SQL Server, SQL Server nhân rộng các đại lý, Dịch vụ báo cáo SQL Server, SQL Server dịch vụ phân tích, SQL Server Integration Services và tìm kiếm văn bản đầy đủ của SQL Server. Ứng dụng thực hiện các hoạt động sao lưu và các hoạt động sao chép tập tin có thể sử dụng rất nhiều bộ nhớ. Xem xét hoạt động như bản sao với số lượng lớn và các đại lý ảnh chụp mà tạo ra tập tin IO. Bạn phải xem xét các yêu cầu bộ nhớ của tất cả các ứng dụng này khi bạn xác định giá trị của hệ phục vụ tối đa bộ nhớ tùy chọn và các bộ nhớ máy chủ min tùy chọn. Bạn có thể sử dụng truy cập Private byte và truy cập làm việc đặt dưới đối tượng quá trình cho mỗi quá trình xác định yêu cầu bộ nhớ cho một quá trình cụ thể.
  • Theo mặc định, khóa trang trong bộ nhớ người dùng phải đã được chỉ định để built-in trương mục hệ thống cục bộ. Để biết thêm thông tin, ghé thăm trang Web sau của Microsoft:
  • Nếu bạn sử dụng trương mục người dùng Windows trên toàn cầu cho tất cả các quá trình SQL Server trong một tên miền, xác định các quyền của người dùng được gán bằng cách sử dụng một cấu hình chính sách nhóm. Một quá trình SQL Server 32-bit có thể sử dụng tài khoản này như là tài khoản khởi động. Tuy nhiên, tài khoản này đòi hỏi khóa trang trong bộ nhớ người dùng phải để kích hoạt tính năng địa chỉ Windowing phần mở rộng (AWE). Để biết thêm chi tiết, xem chủ đề "Cung cấp số lượng tối đa bộ nhớ cho SQL Server" trong SQL Server sách trực tuyến.
  • Trước khi bạn cấu hình hệ phục vụ tối đa bộ nhớ tùy chọn và các bộ nhớ máy chủ min tùy chọn cho nhiều máy chủ SQL instances, hãy xem xét các yêu cầu bộ nhớ của các hồ bơi nonbuffer cho mỗi trường hợp của SQL Server. Sau đó, cấu hình các tùy chọn cho mỗi trường hợp của SQL Server.
Lý tưởng nhất, bạn thu thập thông tin đường cơ sở này trong thời gian cao điểm tải. Vì vậy, bạn có thể xác định các yêu cầu bộ nhớ cho các ứng dụng và các thành phần hỗ trợ tải cao điểm. Yêu cầu bộ nhớ khác nhau từ một hệ thống để hệ thống khác, tùy thuộc vào các hoạt động và các ứng dụng đang chạy trên hệ thống.

Làm thế nào để sử dụng thông tin từ máy chủ SQL vòng đệm để xác định các điều kiện bộ nhớ khi phân trang xảy ra

Bạn có thể sử dụng thông tin từ máy chủ SQL vòng đệm để xác định các điều kiện bộ nhớ trên hệ phục vụ khi phân trang xảy ra. Bạn có thể sử dụng một kịch bản như đoạn mã sau đây để có được thông tin này.
SELECT CONVERT (varchar(30), GETDATE(), 121) as runtime,DATEADD (ms, -1 * (sys.ms_ticks - a.[Record Time]), GETDATE()) AS Notification_time,   a.* , sys.ms_ticks AS [Current Time] FROM  (SELECT x.value('(//Record/ResourceMonitor/Notification)[1]', 'varchar(30)') AS [Notification_type],  x.value('(//Record/MemoryRecord/MemoryUtilization)[1]', 'bigint') AS [MemoryUtilization %],  x.value('(//Record/MemoryRecord/TotalPhysicalMemory)[1]', 'bigint') AS [TotalPhysicalMemory_KB],  x.value('(//Record/MemoryRecord/AvailablePhysicalMemory)[1]', 'bigint') AS [AvailablePhysicalMemory_KB],  x.value('(//Record/MemoryRecord/TotalPageFile)[1]', 'bigint') AS [TotalPageFile_KB],  x.value('(//Record/MemoryRecord/AvailablePageFile)[1]', 'bigint') AS [AvailablePageFile_KB],  x.value('(//Record/MemoryRecord/TotalVirtualAddressSpace)[1]', 'bigint') AS [TotalVirtualAddressSpace_KB],  x.value('(//Record/MemoryRecord/AvailableVirtualAddressSpace)[1]', 'bigint') AS [AvailableVirtualAddressSpace_KB],  x.value('(//Record/MemoryNode/@id)[1]', 'bigint') AS [Node Id],  x.value('(//Record/MemoryNode/ReservedMemory)[1]', 'bigint') AS [SQL_ReservedMemory_KB],  x.value('(//Record/MemoryNode/CommittedMemory)[1]', 'bigint') AS [SQL_CommittedMemory_KB],  x.value('(//Record/@id)[1]', 'bigint') AS [Record Id],  x.value('(//Record/@type)[1]', 'varchar(30)') AS [Type],  x.value('(//Record/ResourceMonitor/Indicators)[1]', 'bigint') AS [Indicators],  x.value('(//Record/@time)[1]', 'bigint') AS [Record Time] FROM (SELECT CAST (record as xml) FROM sys.dm_os_ring_buffers  WHERE ring_buffer_type = 'RING_BUFFER_RESOURCE_MONITOR') AS R(x)) a CROSS JOIN sys.dm_os_sys_info sysORDER BY a.[Record Time] ASC

Lưu ý: Truy vấn này là hợp lệ cho SQL Server 2005 và SQL Server 2008.

Bạn có thể truy vấn thông tin được cung cấp trong quản lý năng động xem sys.dm_os_process_memory hiểu cho dù hệ thống gặp phải điều kiện thiếu bộ nhớ. Để biết thêm chi tiết, xem tài liệu tham khảo SQL Server 2008 sách trực tuyến tại MSDN Web site sau: Các SQL Server 2008 R2 Best thực hành Analyzer (SQL Server 2008 R2 BPA) cung cấp nhiều quy tắc để phát hiện những tình huống mà có thể dẫn đến làm việc đặt trang trí của quá trình SQL Server. SQL Server 2008 R2 BPA hỗ trợ SQL Server 2008 và SQL Server 2008 R2.

Phần mềm quy tắcTiêu đề quy tắcMô tả quy tắcPhiên bản sản phẩm theo đó quy tắc được đánh giá
SQL Server 2008 R2 Best thực hành Analyzer (SQL Server 2008 R2 BPA)
Thiết đặt bộ nhớ SQL Server là không chính xác


Nếu bạn chạy công cụ BPA và nhận được cảnh báo, "Cơ sở dữ liệu - SQL Server bộ nhớ cài đặt là không chính xác," bạn cần phải kiểm tra các thiết lập bộ nhớ hệ phục vụ tối đa cho trường hợp này của SQL Server và làm theo các khuyến nghị trong phần "cân nhắc quan trọng trước khi bạn gán người dùng 'Khóa trang trong bộ nhớ' quyền cho một thể hiện của bản 64-bit của SQL Server" của bài viết này.SQL Server 2008
SQL Server 2008 R2


SQL Server 2008 R2 Best thực hành Analyzer (SQL Server 2008 R2 BPA)Điều hành hệ thống tập tin và trình điều khiển cần cập nhật để làm việc đặt trang tríNếu bạn chạy công cụ BPA và kinh nghiệm lỗi, "cơ sở dữ liệu - điều hành hệ thống tập tin và trình điều khiển cần cập nhật để làm việc đặt trang trí," bạn cần phải xem xét tất cả các bản sửa lỗi đã thảo luận trong phần "Giải quyết" của bài viết này và áp dụng chúng.
SQL Server 2008
SQL Server 2008 R2

SQL Server 2008 R2 Best thực hành Analyzer (SQL Server 2008 R2 BPA)Phần quan trọng của bộ nhớ SQL Server đã được paged ra
Nếu bạn chạy công cụ BPA và trải nghiệm lỗi "Cơ sở dữ liệu - phần lớn của SQL Server paged bộ nhớ, ra," bạn cần phải xem xét các phần "Giải quyết" và "Workaround" của bài viết này và có hành động thích hợp.
SQL Server 2008
SQL Server 2008 R2


Cải tiến trong Windows Server 2008 và Windows Server 2008 R2


Windows Server 2008 và Windows Server 2008 R2 cải thiện cơ chế cấp phát bộ nhớ tiếp giáp. Cải tiến này cho phép Windows Server 2008 và Windows Server 2008 R2 giảm đến một mức độ nhất định tác dụng của phân trang trong tập làm việc của ứng dụng khi yêu cầu bộ nhớ mới đến.

Sau đây là giải thích về sự cải tiến từ Microsoft whitepaper "Tiến bộ trong bộ nhớ quản lý trong Windows":

Trong Windows Server 2008, việc phân bổ các lục địa vật lý bộ nhớ được tăng cường rất nhiều. Yêu cầu cấp phát bộ nhớ tiếp giáp là rất có khả năng thành công bởi vì quản lý bộ nhớ bây giờ tự động thay thế trang, thường mà không cần cắt tỉa tập làm việc hoặc thực hiện I/O hoạt động. Ngoài ra, nhiều loại trang Thêm — chẳng hạn như ngăn xếp hạt nhân và các tập tin hệ thống siêu dữ liệu trang, trong số những người khác-bây giờ là ứng cử viên để thay thế. Kết quả là, bộ nhớ nhiều hơn tiếp giáp là thường có sẵn tại bất kỳ thời gian nhất định. Ngoài ra, chi phí để có được như vậy cấp phát giảm đáng kể.
Để xem whitepaper "Tiến bộ trong bộ nhớ quản lý trong Windows", ghé thăm Website sau của Microsoft:
Để biết thêm chi tiết, hãy truy cập trang web Microsoft sau đây:
Lưu ý: Trên một máy tính dựa trên Windows Server 2008, bạn phải cài đặt SQL Server Service Pack 2 (SP2) hoặc một gói dịch vụ máy chủ SQL sau này.

Các sản phẩm bên thứ ba mà bài viết này thảo luận được sản xuất bởi công ty độc lập với Microsoft. Microsoft không bảo hành, ngụ ý hay cách khác, về hiệu suất hoặc độ tin cậy của những sản phẩm này.

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

Thuộc tính

ID Bài viết: 918483 - Xem lại Lần cuối: 06/20/2014 11:23:00 - Bản sửa đổi: 2.0

Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2005 Standard Edition for Itanium-based Systems, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Enterprise Edition for Itanium-based Systems, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Enterprise

  • kbsqlsetup kbsql2005engine kbexpertiseadvanced kbinfo kbmt KB918483 KbMtvi
Phản hồi