Chúng tôi đang sử dụng một ứng dụng độc quyền dựa trên SQL Server 2005, có nhiều bảng dựa trên HEAP (nghĩa là không có chỉ mục Clustered). Trong những năm qua, các bảng này đã phát triển bị phân mảnh kém (ví dụ như phân mảnh 99%). Tôi cần chống phân mảnh chúng.
Bây giờ, trong SQL Server 2005, không có cách nào để làm điều đó trực tiếp. Tôi có thể:
- Tạo một chỉ mục Clustered trên một trường có sẵn và giữ nó
- Tạo chỉ mục đó, xây dựng lại bảng và sau đó thả nó
- Thêm trường của riêng tôi (ví dụ: khóa tự động)
Bây giờ, đây là một ứng dụng lớn, được viết bởi một nhà cung cấp - một hộp đen khổng lồ. Tôi không háo hức với những thứ của họ. Tôi không biết nhiều về cách các bảng được sử dụng. Cách ít tác động nhất để làm điều này là gì?
Và, như một cách tiếp theo: Có rất nhiều bảng dựa trên HEAP này, hơn một chục cơ sở dữ liệu được ứng dụng sử dụng. Có cách nào để tự động hóa lựa chọn # 2 hoặc # 3 không? Hoặc, tôi nên chọn bảng nào để sửa đổi?
CẬP NHẬT:
Để trả lời các câu hỏi được đặt ra bởi các câu trả lời (rất hữu ích):
- Hiệu suất đã không thể chấp nhận. Nhà cung cấp nói với khách hàng của tôi rằng họ là vì các bảng cực kỳ phân mảnh và khách hàng có trách nhiệm phân mảnh chúng thường xuyên
- Chúng tôi có hai phiên bản của ứng dụng: một thử nghiệm và một sản xuất
- Trước tiên tôi phân mảnh tất cả các bảng Clustered, giúp cải thiện hiệu năng rất nhiều
- Nhóm hỗ trợ của nhà cung cấp đã rất không có ích. Họ đã nói với chúng tôi rằng trách nhiệm của chúng tôi là chống phân mảnh các bảng. Khi tôi hỏi họ làm thế nào họ khuyên bạn nên chống phân mảnh các bảng dựa trên HEAP - tôi có nên thêm Chỉ mục cụm không? - họ chỉ trả lời "Đó là câu hỏi của Microsoft".
Nói tóm lại, nhóm hỗ trợ khách hàng đã nói rõ: Bạn phải chống phân mảnh các bảng, cách bạn thực hiện nó là doanh nghiệp của bạn.
Đối với các phiên bản trong tương lai: Có, các phiên bản mới đang được phát triển và cuối cùng chúng sẽ chuyển sang SQL Server 2012. Nhưng chúng cần các giải pháp hiệu suất ngay hôm nay .
Cuối cùng, đối với việc chống phân mảnh mất quá nhiều thời gian: Không thành vấn đề. Họ có những cái bàn khổng lồ với độ phân mảnh 99%; ứng dụng không được sử dụng vào ban đêm; Tôi có thể dễ dàng dành hàng giờ đồng hồ để chống phân mảnh chúng.