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

Hiệu suất truy vấn SQL có thể giảm khi trường hợp bộ máy cơ sở dữ liệu SQL Server có phân mảnh chỉ số cao

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: 2755960
Tóm tắt
Hiệu suất truy vấn SQL có thể giảm nếu các danh mục được phân mảnh rất nhiều trong trường hợp của Microsoft SQL Server bộ máy cơ sở dữ liệu. Bạn có thể sử dụng chức năng hệ thống sys.dm_db_index_physical_stats để phát hiện các phân mảnh chỉ số cho các trường hợp sau:
  • Một chỉ số cụ thể
  • Tất cả các chỉ số trên một bảng
  • Các chỉ số tất cả vào một cái nhìn được lập mục chỉ dẫn
  • Tất cả các chỉ số trong bộ máy cơ sở dữ liệu
  • Các chỉ số tất cả trong tất cả các bộ máy cơ sở dữ liệu
Để xác định các phân mảnh là hơn 30 phần trăm, chạy kịch bản truy vấn SQL sau đây:

SELECT OBJECT_NAME(i.OBJECT_ID) AS TableName, OBJECT_NAME(i.OBJECT_ID) AS TableName, i.name AS IndexName,i.name AS IndexName, indexstats.avg_fragmentation_in_percent FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'DETAILED') indexstats INNER JOIN sys.indexes i ON i.OBJECT_ID = indexstats.OBJECT_ID WHERE indexstats.avg_fragmentation_in_percent > 30 AND i.index_id = indexstats.index_id
Để xác định cách tốt nhất để khắc phục các phân mảnh, tham khảo các hướng dẫn sau:
  • Sử dụng các thay đổi INDEX xây dựng lại với (trực tuyến = ON) * lệnh cho các đối tượng mà phân mảnh phần trăm trung bình là hơn 30 phần trăm.
  • Sử dụng lệnh Thay đổi chỉ số tổ chức lại cho các đối tượng mà phân mảnh phần trăm trung bình là giữa 5-30 phần trăm.

giá trị avg_fragmentation_in_percentKhắc phục tuyên bố
> 5% và< ==""> TỔ CHỨC LẠI mục chỉ dẫn THAY ĐỔI
> 30 %THAY ĐỔI INDEX XÂY DỰNG LẠI VỚI (TRỰC TUYẾN = ON) *
Ghi chú:
  • Những giá trị này cung cấp một hướng dẫn thô để xác định điểm mà tại đó, bạn nên chuyển đổi giữa các Thay đổi chỉ số tổ chức lạiThay đổi INDEX xây dựng lại. Tuy nhiên, các giá trị thực sự có thể thay đổi các trường hợp. Bạn phải thử nghiệm để xác định ngưỡng tốt nhất cho môi trường của bạn.
  • Mức rất thấp của phân mảnh (ít hơn năm phần trăm) không nên được giải quyết bằng một trong các lệnh. Điều này là vì lợi ích từ loại bỏ một số tiền nhỏ như vậy phân mảnh nặng hơn thường rất nhiều bởi chi phí sắp xếp lại hoặc xây dựng lại các chỉ số.

Thông tin thêm
Để biết thêm chi tiết về làm thế nào để tổ chức lại và xây dựng lại các chỉ số, đi đến web site của Microsoft sau đây:
Bảng sau đây cung cấp các thông tin thêm về sản phẩm hoặc các công cụ tự động kiểm tra tình trạng này của bạn thể hiện của SQL Server và các phiên bản của sản phẩm máy chủ SQL chống lại các quy tắc được đánh giá.
Phần mềm quy tắcTiêu đề quy tắcMô tả quy tắcPhiên bản sản phẩm chống lại các quy tắc được đánh giá
Hệ thống Trung tâm cố vấnFragmentations cao SQL Server có thể hạ cấp hiệu suất truy vấnHệ thống Trung tâm cố vấn kiểm tra phân mảnh hợp lý bằng cách sử dụng các avg_fragmentation_in_percent giá trị sys.dm_db_index_physical_stats cho mỗi chỉ số ví dụ của SQL máy chủ bộ máy cơ sở dữ liệu. Nếu phân mảnh trung bình cho chỉ số hoặc đống là hơn 5%, cảnh báo này được tạo ra. Thực hiện theo các hướng dẫn từ bài viết này để giải quyết các vấn đề có liên quan đến chỉ số cao fragmentations.SQL Server 2008

SQL Server 2008 R2

SQL Server 2012

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

Thuộc tính

ID Bài viết: 2755960 - Xem lại Lần cuối: 09/27/2012 17:57:00 - Bản sửa đổi: 1.0

Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Web

  • kbsurveynew kbhowto kbexpertiseadvanced kbmt KB2755960 KbMtvi
Phản hồi