Pular para o conteúdo
Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #98823
    drigo
    Participante

      Olaa,

      Estive pesquisando sobre índices e surgiram algumas dúvidas conforme mostradas abaixo:

      A) Em uma Tabela que possui índice, quando ocorre a busca por algum dado, primeiramente a pesquisa é feita nessa estrutura auxiliar, ou seja, o índice, e se o dado pesquisado não estiver no índice, ocorre uma busca em toda a tabela ?? qual o real comportamento para tal situação ??

      B) O índice em grande parte das vezes reflete um conjunto de dados que são mais acessados em uma determinada tabela ??

      C) É uma boa prática ao criar uma tabela, incialmente já criar o índice da mesma ?? Ou deve-se aguardar para ver o comportamento de consultas para a mesma em um futuro próximo ??

      Desde já, Agradeço.

      #98824
      Ishii
      Participante

        Olá,

        Especificamente no caso do Oracle, pois outros BDs podem ter comportamentos diferentes…

        a-) No Oracle há uma config no BD que determina isso, o optimizer_mode pode ser sempre por Índice (RULE um dia será descontinuado, mas ainda persiste) ou há a necessidade de manter um conjunto de estatísticas (qtde de linhas das tabelas) – (ALL_ROWS, FIRST_ROWS n) onde o Oracle faz uma “análise” se seria melhor um fullscan na tabela ou o uso dos índices;

        b-) Não, nesse caso acho melhor você entender como funciona um índice b-tree que pode te dar uma explicação melhor que eu conseguiria colocar aqui em poucas linhas;

        c-) Lembre-se sempre: índice também ocupa espaço de armazenamento e no caso de criar índices incorretos pode sempre causar mais uma lentidão do que a proposta original do índice (exemplo: indexar colunas tipo Y ou N não serve para nada a não ser atrapalhar – e acredite, já vi muito disso)

        []s Ishii

      Visualizando 2 posts - 1 até 2 (de 2 do total)
      • Você deve fazer login para responder a este tópico.