Qual seria o melhor desempenho para trabalhar no ArcMap com conjuntos de dados muito grandes armazenados em um geodatabase do ArcSDE? Várias classes de rótulo usando consultas SQL complexas para rotular recursos específicos ou várias cópias da mesma camada usando as mesmas consultas SQL complexas definidas como uma consulta de definição para cada camada?
11
Respostas:
Supondo que as consultas SQL nas classes de rótulo sejam as mesmas das camadas divididas, a abordagem de camada única com várias classes de rótulo será mais rápida. Por quê?:
A rotulagem no ArcMap executará uma consulta para o desenho da camada e, em seguida, uma consulta para cada classe de etiqueta. Portanto, uma camada com 4 classes de rótulo consultará uma vez (1 consulta) todos os recursos selecionados e, em seguida, mais 4 vezes no total (uma para cada classe de rótulo ou mais 4 consultas) = 5 consultas totais
Se você dividir as camadas, terá 1 consulta filtrada (consulta de definição) para cada camada (4 consultas) e a mesma consulta para cada classe de rótulo (mais 4 consultas) = 8 consultas no total
Em quase todos os casos, cinco consultas serão mais rápidas que oito devido a uma sobrecarga simples, embora isso dependa da fonte de dados.
Observe que, no ArcGIS Server, um cache é usado para rotular recursos e 1 camada com 4 classes de rótulo provavelmente será tratada através de uma consulta quando as classes de rótulo usarem SQL bastante padrão sem funções específicas do fornecedor.
fonte
Fiz alguns testes muito simples usando alguns dados do NHD provenientes de uma conexão SDE e encontrei muito pouca diferença entre os dois métodos.
Algumas advertências:
fonte
Eu acho que a consulta de definição seria mais rápida porque está no nível do objeto e não no nível de dados do atributo.
Você ainda teria que testar. No entanto, eu usaria consultas de definição e não rotular classes.
fonte