Có một lợi thế để không phân vùng sắp xếp một chỉ mục?


9

Tôi có đặc quyền quản lý một bảng OLAP phân vùng lớn. Trong khi xem xét bảng này, tôi nhận thấy một trong các chỉ mục không được liên kết với sơ đồ phân vùng. Vì tác giả không có sẵn và các tìm kiếm Google được làm cẩn thận đã không trả lại bất kỳ kết quả hữu ích nào, tôi không chắc đây là cố ý hay vô tình.

Có bất kỳ lý do nào để không phân vùng căn chỉnh một chỉ mục trên SQL Server 2008 không?


1
Có khả năng. Truy vấn sử dụng số liệu thống kê chỉ mục của bạn để xem nếu chỉ mục đó đang được sử dụng. Nếu vậy, hãy sử dụng các sự kiện mở rộng hoặc theo dõi phía máy chủ để nắm bắt những truy vấn nào đang đánh vào chỉ mục đó. Nếu họ sẽ thực hiện tốt hơn trên một chỉ mục liên kết phân vùng, tuyệt vời. Nếu không, hãy kiểm tra xem họ có thực sự cần các chỉ mục phân vùng không liên kết hay không. Nếu họ không, tôi sẽ nói làm cho phân vùng được căn chỉnh bằng mọi cách vì các truy vấn trong tương lai có thể tận dụng lợi thế của nó. Tất nhiên, nếu chi phí / công sức / mất điện quá cao thì không.
Ali Razeghi

Từ những gì tôi đã đọc thực tiễn tốt nhất để lập chỉ mục một bảng được phân đoạn là căn chỉnh chỉ mục với sơ đồ phân vùng. Bảng đặc biệt này khiến tôi nghĩ rằng tôi muốn hiểu trường hợp sử dụng để không căn chỉnh một chỉ mục với sơ đồ phân vùng. Tôi không cố gắng giải quyết một vấn đề cụ thể vì vậy tôi không có một truy vấn nào cần phân tích.
Robin

Một lý do khác để thiết kế một chỉ mục không liên kết là một chỉ mục duy nhất (bao gồm khóa chính hoặc ràng buộc duy nhất) không bao gồm cột phân vùng. Trong trường hợp này, chỉ mục phải không được phân vùng hoặc phân vùng bằng cách sử dụng một chức năng / sơ đồ khác.
Dan Guzman

Câu trả lời:


11

Ưu điểm chính của việc không phân vùng một (không duy nhất) chỉ mục trên một đối tượng cơ sở phân vùng là nó hoạt động xung quanh một giới hạn tối ưu truy vấn từ lâu liên quan đến lệnh yêu cầu dữ liệu chẳng hạn như MIN, MAXhoặc TOP (n)truy vấn.

Trên một số phân vùng, tôi ưu hoa không thể nói chung dịch MIN, MAXhoặc TOP (n)đến hoạt động cùng mỗi phân vùng , tiếp theo là một tập hợp toàn cầu chính thức so với uẩn phần mỗi phân vùng. Thay vào đó, trình tối ưu hóa chọn một kế hoạch thực hiện quét tất cả các phân vùng của chỉ mục. Ngoại lệ cho trường hợp này là trường hợp duy nhất trong đó thao tác tổng hợp hoặc đỉnh được chỉ định trên cột phân vùng.

Tôi nên đề cập rằng cũng có những lý do rất tốt để không có bất kỳ chỉ số không liên kết. Chọn sử dụng một chỉ mục không liên kết sẽ phải là một lựa chọn rất sáng suốt. Tôi đã tự làm điều đó (hiếm khi) trong quá khứ, nhưng trong những trường hợp rất cụ thể mà lợi ích rõ ràng vượt xa chi phí, hoặc không có sự thay thế hợp lý nào khác.


Bài viết của Itzik Ben-Gan giải thích vấn đề.


3

Có một vấn đề rõ ràng xung quanh một số ràng buộc (ví dụ: duy nhất) yêu cầu một chỉ mục không liên kết.

Ngoài ra, các chỉ mục không liên kết có chi phí lớn (chủ yếu là chúng ngăn không cho nhiều toán tử song song đi phân vùng trên mỗi phân vùng và các lựa chọn thay thế là bộ nhớ đắt tiền) và do đó tôi sẽ khuyên bạn nên chống lại các chỉ mục đó. Ngay cả với các trường hợp được liệt kê bởi Paul, tôi vẫn sẽ khuyên chống lại các chỉ số không liên kết.


1
Đúng. Chọn một chỉ số không liên kết sẽ phải là một lựa chọn rất sáng suốt. Tôi đã tự làm điều đó (hiếm khi) trong quá khứ, nhưng trong những trường hợp rất cụ thể mà lợi ích vượt xa chi phí.
Paul White 9

2

Các chỉ mục không liên kết phủ nhận lợi ích chính của phân vùng là chuyển đổi phân vùng. Nếu bạn không phụ thuộc vào điều đó và đang phân vùng vì các lý do khác (lưu trữ khác nhau, phân vùng chỉ đọc, số liệu thống kê gia tăng, ...) thì hãy tiếp tục và tạo chỉ mục không liên kết.

Các chỉ mục không liên kết rất hữu ích vì bạn có thể thực thi các ràng buộc duy nhất trên toàn bộ bảng với chúng. Ngoài ra, các chỉ mục không liên kết không yêu cầu khóa phân vùng phải là tiền tố tìm kiếm ngầm. Hãy tưởng tượng có 10000 phân vùng và truy vấn không dựa trên khóa phân vùng. Kế hoạch thực hiện sau đó sẽ phải tìm kiếm trong 10000 phân vùng nếu chỉ mục được căn chỉnh. Các câu trả lời khác có ví dụ thêm.

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.