2010-10-15 29 views
5

Tôi đang thực hiện một số truy vấn xóa dựa trên ngày lớn trên các bảng có chỉ mục trên các trường khác với ngày. Tôi đã nói rằng thả các chỉ mục đó, thực hiện xóa, và sau đó xây dựng lại chỉ mục có thể nhanh hơn chỉ chạy xóa đối với bảng được lập chỉ mục. Đây có phải là trường hợp không?Có thể giảm và tạo lại chỉ mục tăng tốc độ xóa SQL không?

Tôi có thể thấy lý do tại sao việc xóa hồ sơ thực sự sẽ nhanh hơn mà không có chỉ mục, nhưng tôi cảm thấy hành động phải xây dựng lại sau sẽ làm mất lợi thế về tốc độ kiếm được.

Trả lời

1

Khi quyết định xóa chỉ mục trước, bạn phải so sánh chi phí (hoặc thời gian) để duy trì chỉ mục trong khi xóa với chi phí để tạo lại chỉ mục sau khi xóa. Hai trong số các yếu tố có ảnh hưởng nhất là số hàng trong bảng và số hoặc hàng bị xóa.

Khi số lượng hàng nhỏ hoặc số lượng hàng cần xóa nhỏ, bạn sẽ không được hưởng lợi bằng cách xóa chỉ mục trước tiên. Tuy nhiên, nếu bạn có một bảng lớn và nhiều hàng cần xóa, chi phí cập nhật chỉ mục sẽ tăng lên cho đến khi bạn đạt đến điểm duy trì chi phí cao hơn để xóa và tạo lại chỉ mục.

Vì bạn cho biết bạn đang thực hiện nhiều lần xóa lớn, linh cảm của tôi là bạn có tình huống xóa và tạo lại chỉ mục sẽ giúp ích.

0

Nếu chỉ mục của bạn có yếu tố lấp đầy kém thì tôi chắc chắn điều đó sẽ xảy ra.

Các vấn đề liên quan