Xác minh rằng các chỉ mục thuộc tính đang được sử dụng trong truy vấn từ ArcObjects?


11

Chúng tôi có một số phần mềm như là một phần của dự án lớn hơn được viết bằng ArcObjects thông qua .NET. Phần mềm này di chuyển và hợp nhất dữ liệu từ nhiều cơ sở dữ liệu địa lý tệp trong một lược đồ sang một cơ sở dữ liệu địa lý tệp duy nhất trong một lược đồ tương tự nhưng khác nhau. Một số bước trong quá trình di chuyển liên quan đến việc tìm kiếm một hàng hiện có và cập nhật nó với dữ liệu từ một bảng khác. Điều này có thể trở nên rất chậm khi cơ sở dữ liệu địa lý đích lớn, vì vậy tôi đã thêm một số chỉ mục thuộc tính đa trường để cải thiện hiệu năng truy vấn / cập nhật.

Có cách nào để tôi có thể xác nhận rằng các truy vấn đang sử dụng các chỉ mục thuộc tính mới và có lẽ cách truy vấn đang được thực hiện?

Tôi đoán tôi thực sự đang tìm kiếm tương đương với một kế hoạch truy vấn - một cái gì đó tương tự như EXPLAIN PLANtrong Oracle.

Các truy vấn nằm trên một cơ sở dữ liệu địa lý tệp bằng cách sử dụng ArcObjects trực tiếp (không có phụ trợ RDBMS hoặc SQL).


Bạn đã tính thời gian hiệu suất có và không có chỉ mục thuộc tính? Tôi nghĩ đó là cách duy nhất để biết rằng chúng có hiệu lực.
blah238

Tôi đang chạy thử nghiệm hiệu suất với nhiều kích thước khác nhau của bộ dữ liệu. Tôi sẽ cố gắng đăng kết quả khi tôi nhận được chúng.
Gnat

Tôi đã tìm trong các thư viện lớp ArcObjects để tìm thứ gì đó tương tự như is_size_fast?phương thức của Smallworld Magik , nó trả về giá trị true nếu các chỉ mục đang được sử dụng, nhưng tôi không thể thấy một lệnh gọi ArcObject tương đương.
Gnat

fGDB là định dạng cơ sở dữ liệu riêng của ESRI, có một API sẽ cho phép bạn truy cập dữ liệu mà không cần các đối tượng ESRI nhưng tôi nghi ngờ điều đó sẽ làm sáng tỏ nhiều vấn đề của bạn. Việc sử dụng các chỉ dẫn là tự động và không thể được phát hiện hoặc khẳng định. Tôi đồng ý với blah238 đó là cách duy nhất để nói chắc chắn. Các tùy chọn 'duy nhất' và 'tăng dần' có thể có sự khác biệt lớn nhưng chỉ sử dụng các tùy chọn này nếu bạn hoàn toàn chắc chắn về tính độc đáo và / hoặc đi lên.
Michael Promotionson

@ blah238 Tôi nghĩ bạn có thể biến nhận xét của mình thành câu trả lời.
PolyGeo

Câu trả lời:


1

Cơ sở dữ liệu địa lý tệp là định dạng cơ sở dữ liệu riêng của Esri, có một API cho phép bạn truy cập dữ liệu mà không cần ArcObjects nhưng tôi nghi ngờ điều đó sẽ làm sáng tỏ nhiều vấn đề khó khăn của bạn.

Việc sử dụng các chỉ mục là tự động, ở cấp độ cơ sở dữ liệu và không thể được phát hiện hoặc xác nhận ngoại trừ tính kịp thời của các chức năng sử dụng chúng.

Tôi đồng ý với blah238 cách duy nhất để biết chắc chắn là chạy cùng và không có các chỉ số được xây dựng và so sánh sự khác biệt về thời gian.

Các tùy chọn 'duy nhất' và 'tăng dần' để xây dựng một chỉ mục có thể có sự khác biệt lớn nhưng chỉ sử dụng các tùy chọn này nếu bạn hoàn toàn chắc chắn về tính duy nhất và / hoặc thăng thiên, nếu dữ liệu không phù hợp thì chỉ mục sẽ không được xây dựng hoặc, nếu nó không xây dựng, có khả năng ảnh hưởng xấu đến hiệu suất hơn là tăng cường.

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.