Что обеспечит наилучшую производительность для работы в ArcMap с очень большими наборами данных, хранящимися в базе геоданных ArcSDE? Несколько классов меток, использующих сложные запросы SQL для маркировки определенных функций, или несколько копий одного и того же слоя, использующих одни и те же сложные запросы SQL, заданные в качестве запроса определения для каждого слоя?
11
Ответы:
Предполагая, что запросы SQL для классов меток такие же, как и для разделенных слоев, однослойный подход с несколькими классами меток будет быстрее. Зачем?:
Маркировка в ArcMap выполнит один запрос для рисования слоя, а затем один запрос для каждого класса меток. Таким образом, слой с 4 классами меток будет запрашивать один раз (1 запрос) для всех прорисованных объектов, а затем всего 4 дополнительных раза (по одному для каждого класса меток или еще 4 запроса) = всего 5 запросов.
Если вы разделите слои, у вас будет 1 отфильтрованный запрос (запрос определения) для каждого слоя (4 запроса) плюс тот же запрос для каждого класса меток (еще 4 запроса) = всего 8 запросов.
Почти во всех случаях 5 запросов будут выполняться быстрее, чем 8 запросов, из-за простых накладных расходов, хотя это зависит от источника данных.
Обратите внимание, что в ArcGIS Server кеш используется для маркировки объектов, и 1 слой с 4 классами меток, скорее всего, будет обрабатываться одним запросом, когда классы меток используют довольно стандартный SQL без специфических для поставщика функций.
источник
Я выполнил несколько очень простых тестов, используя некоторые данные NHD, поступающие из соединения SDE, и обнаружил очень небольшую разницу между обоими методами.
Несколько предостережений:
источник
Я думаю, что запрос определения будет быстрее, потому что он находится на уровне объекта, а не на уровне данных атрибута.
Вам все равно придется проверить. Однако я бы использовал запросы определений, а не метки классов.
источник