Noções básicas sobre índices espaciais

8

Eu estava perguntando em um fórum se poderia ser uma boa idéia criar índices espaciais nos subconjuntos de uma tabela quando seu aplicativo exibir no mapa apenas esses subconjuntos e nunca a tabela inteira.

Eu estava fazendo essa pergunta porque achava que, como os subconjuntos não possuem as mesmas extensões de toda a tabela, talvez fosse mais rápido exibir os subconjuntos com seus próprios índices espaciais.

A resposta que recebi foi que os índices espaciais não afetam o tempo de exibição, mas usados ​​apenas para consultas espaciais como união ou interseção. É verdade??? Minha experiência com GIS e banco de dados é quando uma tabela não possui índice espacial, a exibição no mapa é muito mais lenta. Eu sempre pensei que, no visor, a tabela foi consultada para mostrar os recursos que cruzam a extensão atual da janela do mapa, para que os recursos externos não sejam carregados à toa. É realmente assim que funciona? Este é um tipo de consulta espacial, não?

O que é a verdade? É uma boa ideia criar índices espaciais em subconjuntos?

Abaixo do radar
fonte

Respostas:

13

Para fins de exibição, é sempre bom usar um índice espacial. Melhorará a velocidade da renderização e das consultas espaciais. No entanto, se você planeja atualizar grandes quantidades de objetos, pode ser recomendável remover o índice espacial durante a atualização. Caso contrário, o processo de atualização se tornará significativamente mais lento, porque a cada atualização o índice espacial também precisará ser atualizado. Após a atualização, você pode adicionar um índice espacial novamente.

Mark Verschuur
fonte
Para adicionar aos comentários das Marcas, um Shapefile da ESRI geralmente é criado sem um índice espacial e adicionar um pode melhorar significativamente a exibição no ArcMap. Se seus dados estiverem em um geodatabase pessoal ou de arquivo, eles terão automaticamente um índice espacial. Como você sabe? Bem, no ArcMap, o campo Shape terá uma pequena estrela ao lado quando você visualizar os dados no modo de tabela.
Hornbydd
5

Em bancos de dados grandes ou em um banco de dados com algumas alterações, pode ser muito importante ter índices espaciais em vigor e atualizados regularmente.

(Mantendo as coisas simples aqui)

Por exemplo, para os recursos de indexação do Oracle Spatial no mecanismo de banco de dados Oracle, é um recurso essencial do produto Spatial. Um índice espacial, como qualquer outro índice, fornece um mecanismo para limitar as pesquisas , mas, neste caso, com base em critérios espaciais, como interseção e contenção. Um índice espacial é necessário para:

  • Encontre objetos em um espaço de dados indexado que se sobreponham a um determinado ponto ou área de interesse (consulta na janela)
  • Encontre pares de objetos em dois espaços de dados indexados que interagem espacialmente entre si (junção espacial)

Indexação espacial com Oracle 11.2g

http://docs.oracle.com/cd/E11882_01/appdev.112/e11830/sdo_index_query.htm

Mapperz
fonte
+1 Para discussão sobre o SQL Server, consulte a postagem no blog de Isaac Kunen em Basic Multi-Level Grids .
Kirk Kuykendall
Mas, se você estiver fazendo um número significativo de edições, é possível que o índice espacial reduza a velocidade de acesso. Ou seja, a cada edição, se o dbase estiver recalculando o índice, poderá ocorrer um grande impacto no desempenho. O tempo das atualizações em um ambiente de alto uso é importante.
Jay Laura
1
Jay depende se o banco de dados está configurado para transacionais (leitura rápida / escreve) ou Data Warehousing (dados de cargas longas e dados somente leitura) ss64.com/ora/syntax-architecture.html
Mapperz