Tôi đang cố gắng chuyển các thói quen Geoprocessing đơn giản từ các quy trình dựa trên ESRI sang SQL Server. Giả định của tôi là nó sẽ hiệu quả hơn nhiều. Đối với thử nghiệm ban đầu của tôi, tôi đang làm việc trên một thói quen giao nhau để liên kết dữ liệu tuyến tính chồng chéo.
Trong bảng WCASING của tôi, tôi có 1610 hồ sơ. Tôi đang cố gắng liên kết các Vỏ bọc này với nguồn điện liên kết của chúng. Tôi có ~ 277.000 Mains. Tôi có ~ 1.600 vỏ.
Tôi đang chạy truy vấn bên dưới để có được ý thức chung về việc mất bao lâu để tìm các kết quả khớp riêng lẻ. Truy vấn này trả về 5 giao điểm hợp lệ trong 40 giây.
SELECT Top 5 [WCASING].[OBJECTID] As CasingOBJECTID,
[WPUMPPRESSUREMAIN].[OBJECTID] AS MainObjectID, [WCASING].[Shape]
FROM [dbo].[WPUMPPRESSUREMAIN]
JOIN [WCASING]
ON [WCASING].[Shape].STIntersects([WPUMPPRESSUREMAIN].[Shape]) = 1
Câu hỏi chính của tôi;
Quá trình này sẽ nhanh hơn tùy thuộc vào thứ tự tìm kiếm?
- Tìm 'A' bên trong 'B' vs.
- Tìm 'B' bên trong 'A'
- Hoàn trả ban đầu cho 5 bản ghi từ các bộ dữ liệu này là không thành vấn đề
Quá trình này sẽ nhanh hơn, nếu lần đầu tiên tôi đệm để giới hạn một bộ chính nhỏ hơn và sau đó tìm kiếm?
Tôi có thể sử dụng Điều chỉnh máy chủ SQL để làm việc với các truy vấn dựa trên Hình học không?
SELECT WCASING.OBJECTID AS CasingOBJECTID,
WPUMPPRESSUREMAIN.OBJECTID AS MainObjectID, WCASING.UFID AS UFID,
WPUMPPRESSUREMAIN_IPS.UFID AS MainUFID, WCASING.SHAPE
INTO WCASING_INTDefsV6
FROM WCASING with (index([FDO_ShapeWC]))
INNER JOIN [WPUMPPRESSUREMAIN_IPS] ON
[WPUMPPRESSUREMAIN_IPS].Shape.STIntersects(WCASING.SHAPE) = 1
Truy vấn mới này đã được cải thiện định nghĩa.
- Bây giờ cả hai bảng có chỉ mục không gian
- Bảng vỏ trước đây (nhỏ hơn) không có Chỉ số không gian
- Nó đã chứa một Chỉ mục không phân cụm
Các truy vấn cũng có câu lệnh with.
Truy vấn mới mất 37 phút. Truy vấn cũ mất 44 phút.
Tôi đã hy vọng cho kết quả tốt hơn và sẽ tiếp tục thử nghiệm.