Hàng trăm thuộc tính sẽ gây ra vấn đề về hiệu năng trong lớp Máy chủ ArcGIS?


8

Điều này liên quan đến ArcGIS Server 10.0 SP1, với dữ liệu được cung cấp từ một tệp đa giác cơ sở dữ liệu địa lý tệp.

1) Vì lý do hiệu suất, có phải là một ý tưởng tồi khi có một chiếc featureclass với hàng trăm thuộc tính?

2) Có phải là một ý tưởng tồi khi tạo một dịch vụ bản đồ ArcGIS Server (chứa hàng trăm thuộc tính) từ featureclass này không?

3) Có hàm ý hiệu năng nếu tôi xây dựng tính năng Trình phát trong API API và chỉ chỉ định các thuộc tính tôi hiện cần không?

ví dụ: dịch vụ bản đồ có thể chứa 500 thuộc tính, nhưng tôi xác định lớp tính năng của mình bằng cách sử dụng

FeatureLayer.fields = [x, y, z]

Cảm ơn cho bất kỳ lời khuyên, và xin vui lòng cho tôi biết nếu bạn cần thêm chi tiết.


Bạn thực sự có nghĩa là ArcGIS Server 10.0 Service Pack 1, hay phiên bản 10.1 chưa được phát hành?
Bjorn Svensson

Xin lỗi, ý tôi là 10.0 SP1
Stephen Lead

Câu trả lời:


6

Nói tóm lại, nó không tối ưu, nhưng cũng có thể không quá tệ ...

Trên (3) - miễn là bạn luôn chỉ định các trường cụ thể mà bạn muốn, "lần nhấn" duy nhất sẽ có trong yêu cầu ban đầu cho siêu dữ liệu dịch vụ (sẽ lớn hơn một chút do có nhiều trường).

Nếu bạn biết "tập hợp" hoặc "chủ đề" của các trường được nhóm mà ứng dụng của bạn sẽ sử dụng (trong số 500), bạn có thể muốn tạo các lớp trong dịch vụ bản đồ tương ứng. Nhưng nếu danh sách lĩnh vực của bạn năng động hơn, thì hãy tiếp tục như bạn đã nghĩ.

Tuy nhiên, về hiệu suất, trước tiên tôi sẽ tập trung thời gian của bạn vào việc tối ưu hóa / khái quát hóa các đa giác của bạn (vì kích thước của chúng có thể ảnh hưởng nhiều hơn đến cả thời gian tải xuống, thời gian vẽ, tải, v.v.). :)


Bjorn, cảm ơn vì thông tin, điều này rất yên tâm. re: khái quát hóa, điều này xảy ra nhanh chóng dựa trên phạm vi bản đồ và các đa giác áp dụng cho tỷ lệ đó sẽ được hiển thị. Tôi sẽ đăng liên kết khi trang web hoạt động.
Stephen chì

2
FWIW, tôi đã tạo ra một chiếc featureclass với khoảng 200 thuộc tính số. Nếu tôi xác định một tính năngLayer bằng FIELDS = "*" và thực hiện truy vấn, kết quả là khoảng 4,7 kb. Nếu tôi xác định FIELDS là một trường đơn lẻ, kết quả là khoảng 280b. Điều này dường như chỉ ra rằng việc thiết lập FeatureLayer.fields thực hiện tốt việc chỉ trả lại thông tin bắt buộc.
Stephen chì
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.