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

Mô tả ghi dữ liệu lưu trữ thuật toán và mở rộng độ tin cậy của dữ liệu trong SQL Server

Extended support for SQL Server 2005 ends on April 12, 2016

If you are still running SQL Server 2005 after April 12, 2016, you will no longer receive security updates and technical support. We recommend upgrading to SQL Server 2014 and Azure SQL Database to achieve breakthrough performance, maintain security and compliance, and optimize your data platform infrastructure. Learn more about the options for upgrading from SQL Server 2005 to a supported version here.

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: 230785
Tóm tắt
Bài viết này thảo luận cách thuật toán kí nhập và dữ liệu Microsoft SQL Server mở rộng dữ liệu đáng tin cậy và tính toàn vẹn.

Để tìm hiểu thêm về các khái niệm cơ bản của các công cụ và ARIES (thuật toán để phục hồi và cách ly khai thác ngữ nghĩa), hãy xem giao dịch ACM sau tài liệu hệ thống bộ máy cơ sở dữ liệu (trong "Volume 17, số 1, tháng 3 năm 1992):

Người viết chỉ dẫn của tài liệu này là C. Mohan. Tài liệu giải quyết các kỹ thuật của SQL Server để mở rộng dữ liệu đáng tin cậy và toàn vẹn là liên quan đến lỗi.

Chúng tôi khuyên bạn nên đọc các bài viết trong Cơ sở tri thức Microsoft để biết thêm thông tin về bộ nhớ đệm và các lỗi chế độ thảo luận:
86903 Mô tả bộ nhớ đệm bộ điều khiển đĩa trong SQL Server
234656 Thông tin về cách sử dụng ổ đĩa lưu trữ SQL Server mà mọi người quản trị bộ máy cơ sở dữ liệu nên biết
Thông tin thêm
Trước khi chúng tôi Bắt đầu các cuộc thảo luận sâu, một số điều khoản được sử dụng trong bài viết này được xác định trong bảng sau.
Thuật ngữĐịnh nghĩa
Hỗ trợ pinRiêng và bản địa hoá pin sao lưu cơ sở trực tiếp có sẵn và kiểm soát bởi cơ chế lưu trữ để tránh bị mất dữ liệu.
Lưu ý: Đây không phải là một điện không ngắt (UPS). Một UPS đảm bảo các hoạt động ghi và có thể bị ngắt kết nối từ thiết bị lưu trữ.
Bộ đệm ẩnLưu trữ trung gian cơ chế sử dụng để tối ưu hóa vật lý I/O hoạt động và cải thiện hiệu suất.
Bẩn trangTrang có sửa đổi dữ liệu chưa được xoá để lưu trữ ổn định. Để biết thêm thông tin về bộ đệm bẩn trang, hãy xem phần "Văn bản trang"chủ đề tại SQL Server sách trực tuyến.
Lưu ý: Nội dung cũng áp dụng cho Microsoft SQL Server 2012 và phiên bản mới hơn.
Thất bạiĐiều gì đó có thể gây ra ngừng hoạt động không mong muốn của quá trình SQL Server. Ví dụ: điện mất, đặt lại máy tính, nhớ, các vấn đề phần cứng, cung bị lỗi, ổ đĩa không hoạt động, Hệ thống, v.v..
XoáBuộc đệm bộ nhớ cache để lưu trữ ổn định.
ChốtĐồng bộ hoá đối tượng được sử dụng để bảo vệ tính nhất quán vật lý của tài nguyên.
Lưu trữ thayBất kỳ phương tiện mà vẫn có sẵn trên hệ thống.
Ghim trangTrang trong dữ liệu bộ nhớ cache và không thể xóa để lưu trữ ổn định cho đến khi tất cả Nhật ký liên quan đến hồ sơ được bảo vệ trong vị trí lưu trữ ổn định.
Lưu trữ ổn địnhTương tự như thay lưu trữ.
Lưu trữ ổn địnhBất kỳ phương tiện sẽ không còn nguyên vẹn trên thất bại.

Giao thức trước ghi ghi (WAL)

Giao thức hạn là một cách tuyệt vời để mô tả WAL. Thật cụ thể và xác định nhóm thực hiện các bước cần thiết để đảm bảo rằng dữ liệu được lưu trữ và trao đổi một cách chính xác và có thể phục hồi các trạm đậu trong trường hợp thất bại. Cũng giống như mạng chứa một giao thức được xác định để trao đổi dữ liệu một cách nhất quán và được bảo vệ, vì vậy cũng WAL không mô tả các giao thức bảo vệ dữ liệu.

Tài liệu ARIES xác định WAL như sau:
Giao thức WAL khẳng định rằng các bản ghi nhật ký đại diện thay đổi một số dữ liệu đã phải lưu trữ ổn định trước khi thay đổi dữ liệu được thay thế các phiên bản trước của dữ liệu lưu trữ thay. Đó là hệ thống không được phép viết một trang Cập nhật lên phiên bản lưu trữ thay trang cho đến khi ít phần hoàn ghi nhật ký miêu tả các bản cập nhật trang đã được ghi vào bộ nhớ ổn định.
Để biết thêm thông tin về trước ghi nhật ký, hãy xem phần Nhật ký giao dịch trước ghi chủ đề tại SQL Server sách trực tuyến.

SQL Server và WAL

SQL Server sử dụng giao thức WAL. Để đảm bảo rằng giao dịch là đúng cam, tất cả các bản ghi nhật ký liên quan đến giao dịch phải được bảo vệ trong ổn định.

Để làm rõ tình huống này, hãy xem xét ví dụ cụ thể sau.

Lưu ý: Ví dụ này, giả sử rằng không có mục chỉ dẫn và trang bị ảnh hưởng là trang 150.
BEGIN TRANSACTION   INSERT INTO tblTest VALUES (1)COMMIT TRANSACTION				
Tiếp theo, chia nhỏ các hoạt động thành các bước đơn giản kí nhập, như được mô tả trong bảng sau.
Báo cáoHành động thực hiện
Bắt đầu GIAO DỊCHGhi vào Nhật ký bộ đệm ẩn vùng. Tuy nhiên, không cần thiết để đẩy vào ổn định lưu trữ bởi vì máy chủ SQL không thực hiện bất kỳ thay đổi vật lý.
ĐƯA vào tblTest
  1. Dữ liệu trang 150 được truy cập vào bộ nhớ cache dữ liệu SQL Server, nếu không đã có sẵn.
  2. Trang latched, ghim, và đánh dấu kiểm bẩn, và phù hợp với khóa được thu thập.
  3. Bản ghi nhật ký cho xây dựng và thêm vào bộ đệm ẩn kí nhập.
  4. Hàng mới được thêm vào trang dữ liệu.
  5. Chốt được phát hành.
  6. Ghi nhật ký liên quan đến giao dịch hoặc trang không phải xóa lúc này do mọi thay đổi ở lưu trữ ổn định.
THỰC HIỆN GIAO DỊCH
  1. Ghi nhật kí tự đại diện được tạo ra và ghi nhật ký liên quan đến giao dịch phải được ghi vào bộ nhớ ổn định. Giao dịch không được coi là cam kết cho đến khi ghi nhật ký được chỉ định một cách chính xác để lưu trữ ổn định.
  2. Dữ liệu trang 150 vẫn xuất hiện trong bộ nhớ cache dữ liệu SQL Server và không ngay lập tức xóa để lưu trữ ổn định. Khi ghi nhật ký được lắp đúng, phục hồi có thể làm lại các hoạt động, nếu cần thiết.
  3. Khóa giao dịch được phát hành.
Không nhầm lẫn cụm từ "khóa" và "đăng nhập". Mặc dù quan trọng, khoá và ghi nhật ký là vấn đề riêng biệt khi bạn giải quyết WAL. Trong ví dụ trước, SQL Server thường có chốt trang 150 lần cần thiết để thực hiện thay đổi vật lý chèn trang, không phải là trong suốt thời gian giao dịch. Gõ khoá phù hợp được thiết lập để bảo vệ hàng, phạm vi, trang hoặc mục khi cần thiết. Tham khảo phần khóa SQL Server sách trực tuyến để biết thêm chi tiết về các loại khoá.

Xem xét ví dụ chi tiết hơn, bạn có thể yêu cầu những gì sẽ xảy ra khi trình LazyWriter hoặc kiểm tra chạy. SQL Server 7 vấn đề tất cả flushes phù hợp để lưu trữ bản ghi nhật ký giao dịch có liên quan đến trang bị bẩn và ghim ổn định. Điều này đảm bảo WAL giao thức dữ liệu trang không bao giờ có thể được ghi vào ổn định lưu trữ cho đến khi bản ghi nhật ký giao dịch liên kết đã bị xoá.

Lưu trữ SQL Server và ổn định

SQL Server tăng cường trang hiện hoạt kí nhập và dữ liệu bằng cách đưa các kiến thức về kích thước đĩa (thường 4.096 hoặc 512 byte).

Để duy trì tính axit của một giao dịch, SQL Server phải chiếm điểm thất bại. Trong một lỗi đĩa nhiều thông số kỹ thuật chỉ đảm bảo mức giới hạn khu vực ghi hoạt động. Thông số kỹ thuật nhất đảm bảo hoàn thành viết một khu vực khi xảy ra lỗi.

SQL Server sử dụng trang 8-KB dữ liệu và Nhật ký (nếu xóa) trên bội kích thước cung. (Hầu hết các ổ đĩa dùng 512 byte Kích thước cung mặc định.) Trong trường hợp lỗi, SQL Server có thể chiếm thao tác ghi hơn một bằng cách sử dụng tính chẵn lẻ kí nhập và rách viết kỹ thuật.

Phát hiện rách trang

Tuỳ chọn này cho phép máy chủ SQL để phát hiện các thao tác I/O chưa hoàn tất do mất điện hoặc các hệ thống không hoạt động. Khi đúng, nó gây ra một chút lộn cho mỗi khu vực 512 byte trên 8 kilobyte (KB) bộ máy cơ sở dữ liệu trang bất cứ khi nào trang được ghi vào đĩa. Nếu một chút ở trạm đậu không đúng khi trang sau được đọc SQL Server, sau đó trang bị viết sai; Trang rách được phát hiện. Rách trang thường được phát hiện trong quá trình khôi phục vì bất kỳ trang nào được viết không đúng có thể đọc được phục hồi.

Mặc dù trang bộ máy cơ sở dữ liệu SQL Server 8 KB, đĩa thực hiện thao tác I/O bằng cung 512 byte. Do đó, 16 cung được viết một bộ máy cơ sở dữ liệu trang. Trang rách có thể xảy ra nếu hệ thống không thành công (ví dụ: do hỏng nguồn) từ mà hệ điều hành ghi cung 512 byte đầu tiên vào đĩa hoàn thành thao tác I/O 8 KB. Nếu vùng hỗn tạp tiên của một bộ máy cơ sở dữ liệu trang được ghi thành công trước khi thất bại, trang bộ máy cơ sở dữ liệu trên đĩa sẽ xuất hiện khi Cập Nhật, mặc dù nó có thể không có.

Bằng cách sử dụng pin hỗ trợ đĩa bộ điều khiển lưu trữ, bạn có thể đảm bảo rằng dữ liệu đã được ghi vào đĩa hoặc không hề được ghi. Trong trường hợp này, không đặt rách trang phát hiện "True" vì điều này là không cần thiết.

Lưu ý: Rách trang phát hiện không được bật theo mặc định trong SQL Server. Để biết thêm thông tin, hãy số xem theo web site MSDN sau đây:

kí nhập tính chẵn lẻ

Nhật ký kiểm tra tương đương là tương tự như rách trang phát hiện. Mỗi cung 512 byte có tính chẵn lẻ bit. Những bit chẵn lẻ luôn viết ghi nhật ký và đánh giá khi ghi nhật ký được lấy. Bằng cách buộc ghi nhật ký ranh giới 512 byte, SQL Server có thể đảm bảo committal hoạt động hoàn toàn được ghi vào đĩa vật lý cung.

Phiên bản của SQL Server trước 7.0

Phiên bản của SQL Server trước hơn 7.0 không cung cấp tính chẵn lẻ kí nhập hoặc rách chút phát hiện cơ sở. Thực tế, các phiên bản có thể ghi cùng một trang kí nhập nhiều lần cho đến khi bản ghi nhật ký điền trang kí nhập 2-KB. Điều này có thể khiến giao dịch đã cam kết thành công. Nếu trang kí nhập được viết lại trong một thất bại, một khu vực với cam kết giao dịch có thể không được viết lại chính xác.

Tác động hiệu suất

Tất cả các phiên bản của SQL Server mở các tệp nhật ký và dữ liệu bằng cách sử dụng chức năng Win32CreateFile . DwFlagsAndAttributes viên bao gồm tuỳ chọn FILE_FLAG_WRITE_THROUGHkhi chúng được mở của SQL Server.
FILE_FLAG_WRITE_THROUGH
Hướng dẫn hệ thống ghi thông qua bất kỳ bộ nhớ cache trung gian và đi trực tiếp vào đĩa. Hệ thống vẫn có thể bộ nhớ cache ghi hoạt động, nhưng lazily không thể làm sạch chúng.

Tuỳ chọn FILE_FLAG_WRITE_THROUGH đảm bảo rằng khi hoạt động ghi trở lại sau khi hoàn thành, dữ liệu được đúng cách lưu trữ lưu trữ ổn định. Điều này gắn với giao thức WAL đảm bảo dữ liệu.
Nhiều ổ đĩa (SCSI và IDE) chứa bộ đệm ẩn trên 512 KB, 1 MB, hoặc lớn hơn. Tuy nhiên, các ổ đĩa lưu trữ thường dựa trên một tụ điện và không hỗ trợ pin giải pháp. Các bộ nhớ đệm cơ chế không thể đảm bảo ghi trên một chu kỳ hoặc lỗi tương tự như điểm. Họ chỉ đảm bảo hoàn thành các hoạt động ghi cung. Đặc biệt là tại sao rách viết và kí nhập tương đương phát hiện được xây dựng vào SQL Server 7.0 và phiên bản mới hơn. Như các ổ đĩa tiếp tục tăng kích thước, các lưu trữ trở nên lớn hơn và họ có thể hiện ra một lượng lớn dữ liệu trong không.

Nhiều nhà cung cấp phần cứng cung cấp giải pháp điều khiển đĩa sao pin. Các bộ điều khiển lưu trữ có thể duy trì dữ liệu trong bộ đệm ẩn trong vài ngày và cho phép phần cứng lưu trữ được đặt trên máy tính thứ hai. Khi điện được khôi phục đúng, dữ liệu bất thành văn hoàn toàn xóa trước khi tiếp tục truy cập dữ liệu được. Nhiều cho phép lệ đọc và ghi bộ nhớ cache để thiết lập cho hiệu suất tối ưu. Một số có khu vực lưu trữ lớn bộ nhớ. Trong thực tế cho một phân đoạn cụ thể của thị trường, một số nhà cung cấp phần cứng cung cấp cao cấp pin hỗ trợ đĩa vào bộ đệm ẩn hệ thống điều khiển với 6 GB bộ nhớ cache. Điều này có thể cải thiện đáng kể bộ máy cơ sở dữ liệu hoạt động.

Nâng cao việc triển khai bộ nhớ đệm sẽ xử lý FILE_FLAG_WRITE_THROUGH yêu cầu bằng cách không phải vô hiệu hoá bộ đệm ẩn của bộ điều khiển vì chúng có thể cung cấp đúng lại khả năng trong trường hợp đặt lại hệ thống, mất điện hoặc điểm thất bại.

I/O chuyển mà không cần sử dụng một bộ đệm ẩn có thể hơn đáng kể do cơ thời gian cần thiết để di chuyển đầu ổ đĩa, xoay giá và các yếu tố hạn chế.

Khu vực đặt hàng

Một kỹ thuật thường được sử dụng để tăng hiệu năng I/O là khu vực thứ tự. Để tránh cơ đầu di chuyển yêu cầu đọc/ghi được sắp xếp, cho phép một chuyển động phù hợp hơn đầu để truy xuất hoặc lưu trữ dữ liệu.

Bộ đệm ẩn có thể chứa nhiều kí nhập và dữ liệu ghi yêu cầu cùng một lúc. Giao thức WAL và SQL Server thực hiện giao thức WAL yêu cầu xả Nhật ký ghi lưu trữ ổn định trước khi ghi trang có thể được cung cấp. Tuy nhiên, sử dụng bộ đệm ẩn có thể trở thành công một yêu cầu ghi nhật ký mà không có dữ liệu được ghi vào đĩa thực tế (nghĩa là, ghi ổn định lưu trữ). Điều này có thể dẫn đến phát hành yêu cầu ghi dữ liệu trang SQL Server.

Với sự tham gia bộ đệm ẩn ghi, dữ liệu vẫn được coi là ổn định lưu trữ. Tuy nhiên, từ Win32 API WriteFilegọi chính xác như thế nào SQL Server thấy hoạt động, mã trở thành công nhận được. SQL Server hoặc bất kỳ quá trình sử dụng cuộc gọiWriteFileAPI có thể xác định onlythat dữ liệu chính xác được lưu trữ ổn định.

Để thảo luận, cho các thành phần của trang dữ liệu được sắp xếp ghi trước cung ghi nhật ký phù hợp. Điều này ngay lập tức vi phạm giao thức WAL. Bộ đệm ẩn ghi dữ liệu trang trước khi ghi nhật ký. Trừ khi bộ nhớ cache đầy đủ pin sao, không có thể gây ra những kết quả.

Khi bạn đánh giá các yếu tố hiệu suất tối ưu cho máy chủ bộ máy cơ sở dữ liệu, có nhiều yếu tố cần xem xét. Quan trọng nhất là, "Hệ thống của tôi không cho phép hợp lệ FILE_FLAG_WRITE_THROUGH khả năng?"

Lưu ý: Bộ đệm ẩn bất kỳ mà bạn đang usingmust đầy đủ hỗ trợ giải pháp hỗ trợ pin. Tất cả các cơ chế lưu trữ khác là nghi ngờ dữ liệu bị hỏng và mất dữ liệu. SQL Server thực hiện mọi nỗ lực để đảm bảo WAL bằng cách cho phép FILE_FLAG_WRITE_THROUGH.

Kiểm tra cho thấy rằng nhiều cấu hình ổ đĩa có chứa ghi vào bộ đệm ẩn không phù hợp với pin dự phòng. ổ đĩa SCSI, IDE và EIDE tận ghi lưu trữ. Để biết thêm thông tin về cách SSDs hoạt động cùng với SQL Server, seethe sau CSS SQL Server kỹ sư Blog bài viết:


Nhiều cấu hình, cách duy nhất để vô hiệu hoá một cách chính xác bản ghi vào bộ đệm ẩn của ổ đĩa IDE hoặc EIDE là bằng cách sử dụng tiện ích nhà sản xuất cụ thể hoặc nhảy trên ổ đĩa đó. Để đảm bảo rằng bộ đệm ẩn ghi bị vô hiệu hoá các ổ đĩa đó, hãy liên hệ với nhà sản xuất ổ đĩa.

ổ đĩa SCSI còn ghi lưu trữ. Tuy nhiên, thường có thể tắt các bộ đệm ẩn hệ điều hành. Nếu có bất kỳ câu hỏi, liên hệ với nhà sản xuất ổ đĩa để phù hợp với tiện ích.

Ghi Cache xếp chồng

Viết Cache xếp tương tự như khu vực thứ tự. Danh sách sau đây được lấy trực tiếp từ một IDE ổ xuất của trang web:
Thông thường, chế độ này được kích hoạt. Viết chế độ đệm ẩn chấp nhận các máy chủ ghi dữ liệu vào bộ đệm cho đến khi bộ đệm đầy đủ hoặc bản ghi dịch vụ lưu trữ được hoàn tất.

Tác vụ ghi đĩa Bắt đầu để lưu trữ dữ liệu lưu trữ vào đĩa. Máy chủ ghi lệnh tiếp tục được chấp nhận và chuyển dữ liệu vào bộ đệm cho đến khi hoặc ngăn xếp lệnh ghi đầy đủ hoặc bộ đệm dữ liệu đầy đủ. ổ đĩa có thể sắp xếp lại ghi lệnh để tối ưu hóa ổ đĩa thông qua.

Tự động viết Reallocation (AWR)

Một kỹ thuật thường được sử dụng để bảo vệ dữ liệu là để phát hiện các cung bị lỗi trong quá trình thao tác dữ liệu. Giải thích sau đến từ một IDE ổ xuất của trang web:
Tính năng này là một phần của bộ đệm ẩn ghi và giảm nguy cơ bị mất dữ liệu trong quá trình hoạt động chậm ghi. Nếu một đĩa lỗi xảy ra trong quá trình ghi đĩa, đĩa công việc dừng và khu vực nghi ngờ được reallocated vào một lĩnh vực khác được đặt vào ổ đĩa. Sau khi reallocation, việc ghi đĩa tiếp tục cho đến khi nó được hoàn tất.
Điều này có thể là một tính năng rất mạnh mẽ pin dự phòng được cung cấp cho bộ nhớ cache. Điều này cung cấp các sửa đổi phù hợp khi khởi động lại. Đó là thích hợp hơn để phát hiện lỗi đĩa, nhưng dữ liệu bảo mật của giao thức WAL sẽ lại yêu cầu này được thực hiện thời gian thực và không phải bằng cách chậm. Trong các tham số WAL AWR kỹ thuật không thể chiếm một tình huống trong đó ghi nhật ký không thành công do lỗi cung nhưng ổ đĩa bị đầy đủ. bộ máy cơ sở dữ liệu phải ngay lập tức biết về sự thất bại để giao dịch có thể được hủy bỏ đúng cách, quản trị viên có thể được cảnh báo và sửa chữa các bước thực hiện để bảo vệ dữ liệu và sửa chữa trường hợp lỗi phương tiện.

An toàn dữ liệu

Có nhiều biện pháp phòng ngừa quản trị bộ máy cơ sở dữ liệu phải thực hiện để đảm bảo an toàn của dữ liệu.
  • Luôn luôn là một ý tưởng tốt để đảm bảo rằng chiến lược của bạn sao lưu đầy đủ để phục hồi từ lỗi nghiêm trọng. Ngoại vi lưu trữ và cảnh báo khác là phù hợp.
  • Kiểm tra các thao tác Khôi phục bộ máy cơ sở dữ liệu trong một phụ hoặc kiểm tra bộ máy cơ sở dữ liệu trên cơ sở thường xuyên.
  • Đảm bảo rằng các thiết bị lưu trữ có thể xử lý tất cả các trường hợp thất bại (mất điện, cung bị lỗi, ổ đĩa không hợp lệ, hỏng hóc hệ thống, lockups, tăng đột biến điện, v.v.).
  • Đảm bảo rằng thiết bị lưu trữ của bạn:
    • Có tích hợp pin dự phòng
    • Có thể phát hành lại ghi trên điện
    • Có thể được hoàn toàn vô hiệu hoá nếu cần thiết
    • Xử lý khu vực xấu ánh xạ lại trong thời gian thực
  • Kích hoạt bị phát hiện trang. (Điều này có ảnh hưởng nhỏ hoạt động.)
  • Cấu hình ổ đĩa RAID cho phép trao đổi nóng của ổ đĩa không hợp lệ, nếu có thể.
  • Sử dụng bộ điều khiển lưu trữ mới cho phép bạn thêm nhiều không gian đĩa mà không cần khởi động lại hệ điều hành. Điều này có thể là một giải pháp lý tưởng.

Kiểm tra ổ đĩa

Hoàn toàn bảo vệ dữ liệu của bạn, bạn phải đảm bảo rằng tất cả dữ liệu bộ nhớ đệm được xử lý đúng cách. Trong nhiều trường hợp này, bạn phải vô hiệu hoá bản ghi vào bộ đệm ẩn của ổ đĩa.

Lưu ý: Đảm bảo rằng thay thế bộ nhớ đệm cơ chế chính xác có thể xử lý nhiều loại lỗi.

Microsoft đã thực hiện một số ổ đĩa SCSI và IDE thử nghiệm bằng cách sử dụng tiện ích SQLIOSim . Tiện ích này mô phỏng nặng không đồng bộ đọc/ghi hoạt động thiết bị mô phỏng dữ liệu và Nhật ký thiết bị. Kiểm tra thống kê hiệu suất cho hoạt động trung bình ghi mỗi giây giữa 50 và 70 cho một ổ đĩa có bị vô hiệu hoá ghi vào bộ đệm ẩn và một vòng/phút khoảng 5.200 và 7.200.

Để biết thêm thông tin về Tiện ích SQLIOSim , hãy xem bài viết sau trong cơ sở kiến thức Microsoft:
231619 Làm thế nào để sử dụng tiện ích SQLIOSim để mô phỏng SQL Server hoạt động trên một hệ thống đĩa
Nhiều nhà sản xuất máy tính để các ổ đĩa bằng bộ đệm ẩn ghi vô hiệu hoá. Tuy nhiên, thử nghiệm cho thấy rằng điều này có thể luôn không hợp. Do đó, luôn luôn kiểm tra hoàn toàn.

Thiết bị dữ liệu

Trong trường hợp tất cả, nhưng không ghi, SQL Server sẽ yêu cầu chỉ ghi nhật ký để được xoá. Khi thực hiện thao tác không kí nhập, dữ liệu trang cũng phải được xoá để lưu trữ ổn định; không ghi nhật ký cá nhân để tạo lại các hành động trong trường hợp không có.

Dữ liệu trang có thể còn lại trong bộ đệm ẩn cho đến khi quá trình LazyWriter hoặc kiểm tra xóa chúng để lưu trữ ổn định. Sử dụng giao thức WAL để đảm bảo rằng các bản ghi nhật ký được lưu trữ đúng cách đảm bảo phục hồi có thể khôi phục dữ liệu trạm đậu các trang.

Điều này có nghĩa là nó được khuyến khích đặt tệp dữ liệu trên ổ đĩa lưu trữ. Khi SQL Server xóa trang dữ liệu lưu trữ ổn định, các bản ghi nhật ký có thể bị cắt bớt từ Nhật ký giao dịch. Nếu trang dữ liệu được lưu vào bộ đệm ẩn ổn định, có thể ghi nhật ký nào được sử dụng để khôi phục một trang trong trường hợp không cắt bớt. Đảm bảo rằng thiết bị của bạn dữ liệu và Nhật ký chứa lưu trữ ổn định chính xác.

Tăng hiệu suất

Câu hỏi đầu tiên xảy ra là: "tôi có một ổ đĩa IDE vào bộ đệm ẩn. Tuy nhiên, khi tôi tắt nó, hiệu suất của tôi đã trở thành đáng kể ít hơn mong đợi. Tại sao?"

Nhiều ổ đĩa IDE thử nghiệm của Microsoft chạy một 5.200 vòng/phút lệ và SCSI ổ đĩa một RPM 7.200. Khi bạn vô hiệu hoá ghi vào bộ nhớ đệm ổ đĩa IDE hoạt động cơ trở thành một yếu tố.

Một khu vực rất rõ ràng để giải quyết sự khác biệt hiệu suất: "Địa chỉ giao dịch tỷ lệ."

Có nhiều giao dịch trực tuyến xử lý hệ thống (OLTP) yêu cầu độ cao giao dịch. Cho các hệ thống, xem xét việc sử dụng bộ điều khiển lưu trữ có thể được hỗ trợ bộ đệm ẩn ghi và cung cấp tăng hiệu suất khi đảm bảo tính toàn vẹn dữ liệu.

Đáng kể gặp phải thực hiện thay đổi với SQL Server trên một ổ đĩa lưu trữ, mức giao dịch được tăng lên bằng cách sử dụng giao dịch nhỏ.

Kiểm tra chương trình ghi cao hoạt động của bộ đệm nhỏ hơn 512 KB hoặc lớn hơn 2 MB có thể khiến hiệu suất chậm.
Xem xét ví dụ sau:
CREATE TABLE tblTest ( iID int IDENTITY(1,1), strData char(10))GOSET NOCOUNT ONGOINSERT INTO tblTest VALUES ('Test')WHILE @@IDENTITY < 10000   INSERT INTO tblTest VALUES ('Test')				
Sau đây là mẫu kiểm tra kết quả cho SQL Server:
SCSI(7200 RPM) 84 giây
SCSI(7200 RPM) 15 phút (bộ đệm ẩn điều khiển)

IDE(5200 rpm) 14 giây (ổ đĩa bộ nhớ cache được kích hoạt)
IDE(5200 rpm) 160 phút

Gói toàn bộ chuỗi hoạt động chèn một giao dịch một chạy trong khoảng bốn giây trong tất cả các cấu hình.

Lý do là số lượng yêu cầu kí nhập flushes. Không có giao dịch, chèn mỗi là một giao dịch trong và của chính nó, và mỗi lần ghi nhật ký cho giao dịch phải được xoá. Mỗi flush là 512 byte Kích thước yêu cầu can thiệp ổ đĩa cơ quan trọng.

Khi giao dịch duy nhất được ghi nhật ký cho giao dịch có thể được đóng gói và viết một lớn hơn có thể được sử dụng để xoá bản ghi nhật ký thu thập. Dự án cơ giảm đáng kể.

Cảnh báo Chúng tôi khuyên bạn không tăng phạm vi giao dịch của bạn. Dài chạy giao dịch có thể dẫn đến quá nhiều và không mong muốn chặn cũng như tăng chi phí. Sử dụng bộ đếm hiệu năng SQL Server SQL Server: bộ máy cơ sở dữ liệu để xem bộ đếm dựa trên Nhật ký giao dịch. Cụ thể, kí nhập byte Flushed/giây có thể cho biết nhiều giao dịch nhỏ dẫn đến đĩa cơ khí cao hoạt động.

giao diện báo cáo liên quan đến bản ghi ra và xác định nếu số flushes Nhật ký có thể bị giảm. Trong ví dụ trước đó, một giao dịch được thực hiện. Tuy nhiên, trong nhiều trường hợp, điều này có thể dẫn đến hành vi không mong muốn của khóa. Kiểm tra thiết kế giao dịch. Bạn có thể sử dụng mã tương tự như sau lô để giảm hoạt động ra kí nhập thường xuyên và nhỏ thực hiện:
BEGIN TRANGOINSERT INTO tblTest VALUES ('Test')WHILE @@IDENTITY < 50BEGIN   INSERT INTO tblTest VALUES ('Test')   if(0 = cast(@@IDENTITY as int) % 10)   BEGIN      PRINT 'Commit tran batch'      COMMIT TRAN      BEGIN TRAN   ENDENDGOCOMMIT TRANGO				
SQL Server yêu cầu hệ thống hỗ trợ "đảm bảo cung cấp phương tiện ổn định," như được mô tả trong các Yêu cầu đánh giá chương trình độ tin cậy của SQL Server vào/ra tải xuống tài liệu. Để biết thêm chi tiết về các yêu cầu đầu vào và đầu ra cho bộ máy cơ sở dữ liệu SQL Server, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
967576 Yêu cầu đầu vào/đầu ra công cụ bộ máy cơ sở dữ liệu Microsoft SQL Server

Warning: This article has been translated automatically

Thuộc tính

ID Bài viết: 230785 - Xem lại Lần cuối: 05/17/2015 10:52:00 - Bản sửa đổi: 3.0

Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 7.0 Standard Edition, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Standard

  • kbhowto kbinfo kbmt KB230785 KbMtvi
Phản hồi