Chống phân mảnh - Xây dựng lại chỉ mục SQL Server 2005


8

Tôi đang nghiên cứu cơ sở dữ liệu chống phân mảnh và có vẻ như câu lệnh SQL sau đây là thứ tôi đang tìm kiếm:

ALTER INDEX ALL ON mytablename
REBUILD WITH(ONLINE = ON)

Khi tôi lấy thông tin từ đó sys.dm_db_index_physical_stats, tôi thấy phần trăm rất cao - 70, 80 và 90 phần trăm (!). Vì vậy, nó cho tôi biết tôi muốn một REBUILD, và không a REORGANIZE.

Tôi có một vài câu hỏi trước khi thực hiện những điều này REBUILDS.

  1. Nó có thể được chạy trong khi các quy trình đang sử dụng cơ sở dữ liệu? ( ONLINE = ON nói với tôi là có, nhưng tôi muốn xác nhận rằng nó sẽ không gặp sự cố gì.) Hoặc tốt hơn là chạy khi không sử dụng?
  2. Tôi đọc REBUILDlàm cho mọi thứ chạy chậm hơn. Có phải đó chỉ là trong khi các chỉ mục đang được xây dựng lại? (hoặc mãi mãi về sau)
  3. Sẽ mất bao lâu để xây dựng lại tất cả các chỉ mục / hay đúng hơn là mỗi chỉ số?
  4. Có bất kỳ tác dụng phụ hoặc thông tin khác mà tôi cần phải biết? Đây là cơ sở dữ liệu sản xuất / trực tiếp.

EDIT: Và cuối cùng, cách tốt nhất để xây dựng lại nó là gì? Vòng qua tất cả các đối tượng có tỷ lệ phần trăm lớn hơn 30? Hoặc là?

Cảm ơn bạn!


4
Lưu ý rằng các hoạt động chỉ mục trực tuyến yêu cầu Phiên bản doanh nghiệp của SQL Server.
Joe Stefanelli

Cảm ơn bạn. Vâng, chúng tôi có phiên bản Enterprise.

Cách duy nhất để biết sẽ mất bao lâu là sao chép cơ sở dữ liệu vào một máy chủ tương tự (cùng cấu hình phần cứng) và chạy xây dựng lại ở đó.
datagod

Câu trả lời:


7
  1. Có, bạn có thể xây dựng lại trong khi cơ sở dữ liệu trực tuyến với người dùng hoạt động. Nó chắc chắn tốt hơn để làm điều đó ngoài giờ cao điểm nếu có thể.
  2. Trong quá trình xây dựng lại, các truy vấn của bạn sẽ chạy chậm hơn, chủ yếu là do chi phí I / O của việc xây dựng lại chỉ mục. Làm thế nào đáng chú ý điều này phụ thuộc vào chi tiết cụ thể của hệ thống của bạn. Hình phạt hiệu suất chỉ trong quá trình xây dựng lại - không phải mãi mãi về sau.
  3. Một lần nữa, thời gian xây dựng lại phụ thuộc vào thiết lập cụ thể của bạn. Bạn nên thử chạy nó trên một máy chủ phát triển hoặc dàn tương đương.
  4. Không có tác dụng phụ liên quan khác. Khi quá trình xây dựng lại hoàn tất, bạn sẽ sao lưu và chạy như bình thường.

2
Đối với điểm 4, anh ta nên biết rằng không gian được lấy bởi cơ sở dữ liệu của anh ta trên đĩa sẽ tăng đáng kể vì nó sẽ cần để chứa hai phiên bản của chỉ mục xây dựng lại. Về cơ bản, nó sẽ thêm không gian chùng có kích thước bằng chỉ số lớn nhất của mình.
JNK

@JNK Vâng, điểm tốt. Cảm ơn đã nắm bắt điều đó.
Yuck

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.