Lớp truy vấn ArcGIS 10.2 trên hiệu suất của SQL Server


10

Tôi đang sử dụng Lớp truy vấn trên SQL Server trong ArcMap. Lớp truy vấn thực thi ngay lập tức trong SQL Server nhưng mất quá nhiều thời gian để vẽ trong ArcMap nên hệ thống có vẻ không phản hồi trong khoảng 10 phút hoặc lâu hơn. Trong ArcMap, một trong những CPU được tối đa hóa trong quy trình SQL Server.

Truy vấn của tôi là STIntersects của bộ đệm trên đối tượng địa lý (Shannon) đối với lớp đối tượng đa giác (Townlands), như sau;

SELECT TOWNLANDS.TL_ID,TOWNLANDS.Shape FROM dbo.TOWNLANDS as townlands
with(index(FDO_Shape)) 
JOIN dbo.Shannon on townlands.Shape.STIntersects 
(Shannon.Shape.STBuffer(2.0))=1

Truy vấn trả về 186 hàng ngay lập tức. Chúng có thể được vẽ trong khung không gian SQL Server Management Studio mà không gặp vấn đề gì

Khi tôi xây dựng Lớp truy vấn trong ArcMap với cùng một cú pháp chính xác, hệ thống sẽ không phản hồi nhưng cuối cùng lại rút ra. Dường như, có lẽ, ArcMap không sử dụng chỉ mục không gian hoặc làm như vậy khác với SQL Server gây ra một truy vấn không hiệu quả trên SQL Server mất một tuổi để trả về.

Bất cứ ai có thể tư vấn về một biện pháp khắc phục?

Cảm ơn

ArcGIS Desktop: 10.2
ArcSDE: 10.2
RDBMS: Database and version: SQL Server 2008
OS: Windows Server 

Câu trả lời:


3

Như bạn đã nói, truy vấn của bạn dường như thực hiện nhanh chóng ở cấp độ cơ sở dữ liệu. Ngay cả khi bạn có thể làm cho SQL hiệu quả hơn, hiệu suất thực sự vẫn ở mức không gian.

Các câu lệnh SQL không gian, giống như câu lệnh bạn đang sử dụng, chỉ được phép gần đây với việc giới thiệu loại hình học. SQL Server 2008 cho ArcSDE hỗ trợ ba loại dữ liệu hình học, SDEBINARY, GEOMETRY và GEOGRAPHY. Sự khác biệt được liệt kê ở đây

Để có hiệu suất tốt nhất, hãy đảm bảo bạn đang sử dụng Hình học hoặc Địa lý (không phải SDEBINARY vì nó đã lỗi thời và không được đề xuất) dựa trên bản chất của dữ liệu của bạn cho dù bạn có sử dụng tham chiếu không gian trái đất hay không. Ngoài ra, hãy đảm bảo xây dựng lại chỉ số không gian trên featureclass TOWNLANDS. Bạn có thể làm điều đó từ ArcCatalog bằng cách nhấp chuột phải vào featureclass, thuộc tính và chọn tab chỉ mục.

Mong rằng sẽ giúp.


1

Tôi không thấy trong truy vấn của bạn cần phải tham gia. Thay vào đó hãy thử sử dụng WHERE.

SELECT TOWNLANDS.TL_ID,TOWNLANDS.Shape 
FROM dbo.TOWNLANDS as townlands
with(index(FDO_Shape)) 
WHERE townlands.Shape.STIntersects 
(Shannon.Shape.STBuffer(2.0))=1

Trong truy vấn ban đầu, phép nối xuất hiện không có lợi cho kết quả; Tôi không thấy bất kỳ cột nào từ bảng Shannon trong dòng chọn. Do đó, nó có vẻ như làm thêm.


Chào mừng bạn đến với GIS SE! Câu trả lời của bạn rất ngắn gọn để giúp Asker này và những người đọc sau này bạn có thể sử dụng nút chỉnh sửa để mở rộng theo những gì bạn đang đề xuất không, làm ơn?
PolyGeo

1

Đây là một hạn chế đã biết của việc sử dụng ArcGIS với SQL Server mà không có cách khắc phục đơn giản theo như tôi biết.

Nếu trình hoạch định truy vấn SQL Server quyết định nó cần nhiều hơn một CPU để thực hiện truy vấn, thì tỷ lệ của chỉ số không gian đang được sử dụng là thấp.

Microsoft nhận thức được vấn đề nhưng không vội vàng cải thiện trình hoạch định truy vấn vì nó sẽ ảnh hưởng đến tất cả các truy vấn, không chỉ các truy vấn không gian.

Giải pháp đáng tin cậy duy nhất là đặt mức độ song song tối đa (MAXDOP) của bạn trên cơ sở dữ liệu của bạn thành 1, nhưng điều này có nghĩa là tất cả các truy vấn trên DB đó sẽ chỉ sử dụng 1 CPU cho mỗi truy vấn, làm chậm mọi thứ.

Tạo chế độ xem đại diện cho bảng và buộc gợi ý chỉ mục không gian không hoạt động vì ArcGIS cần truy vấn siêu dữ liệu và số liệu thống kê của bảng và chế độ xem đó sẽ giết chết các truy vấn đó.


0

Tôi có một vấn đề tương tự. Tôi có một lớp tính năng được lưu trữ trong SQL Server dưới dạng hình học. Nó có 30m bản ghi trong đó và nó rất ổn, nhưng nếu bạn tạo VIEW được liên kết với bảng thứ 2, thì VIEW này bị treo và sẽ không hiển thị.

Bảng có một tải các lớp quan hệ gắn liền với nó. Những điều này sẽ ảnh hưởng đến hiệu suất truy vấn / bản vẽ?

Ngoài ra, bạn có thể chỉ cho tôi theo hướng thừa nhận của Microsoft về vấn đề này. Tôi có thể buộc trình lập kế hoạch truy vấn sử dụng chỉ mục không gian không?

Hóa đơn


Hãy hỏi một câu hỏi mới.
Mapperz
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.