Pular para o conteúdo
  • Este tópico contém 5 respostas, 3 vozes e foi atualizado pela última vez 18 anos atrás por gustavodesa.
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #78659
    Anônimo

      Olá Pessoal.

      Como eu faço para descobrir os indices em um tabela.

      Grato a todos.

      #78661
      Anônimo

        Segue script…

        select i.table_name, i.index_name
        from dba_tables t inner join dba_indexes i
        on t.table_name = i.table_name
        order by 1,2

        Darci Leandro
        DBA Oracle

        #78665
        Anônimo

          Obrigado pela ajuda leandro.

          Pesquisei e consegui também assim:

          SELECT * FROM ALL_IND_COLUMNS WHERE INDEX_NAME =
          ‘ARQABAD_ARQABAD1_KEY’

          qual a diferença entre pegar os dados da dba_indexes e pegar da ALL_IND_COLUMNS ?

          Só posso fazer esta querie se eu tiver permissão de DBA?

          Grato.

          #78667
          Anônimo

            O script que vc enviou parte do principio que vc já sabe qual é o nome do índice… mas sua dúvida inicial era saber quais eram os indices das tabelas….

            Para selecionar as views ALL_ e DBA_ tem que ter privilégio específico…

            A role DBA já tem essa permissão como default, porém vc pode conceder para qualquer outro usuário.

            Bem, a diferença entre essas duas views é….

            DBA_INDEXES contém informações da estrutura do indice.

            ALL_IND_COLUMNS vai além… informa quais são as colunas que estão indexadas….

            Para o seu caso utilizar a DBA_INDEXES já é suficiente visto que vc quer saber apenas o nome dos indices das tabelas…. agora se vc quiser saber além disso… ou seja…. também deseja saber quais são as colunas de um índice de um tabela aí sim é ideal utilizar o ALL_IND_COLUMNS

            É isso aí…. espero ter auxiliado.

            Até mais,

            Darci Leandro
            DBA

            #78668
            chduarte
            Participante

              A dba_indexes da informacoes sobre o indices/tabela/armazenamento
              A dba_ind_columns da informacoes sobre as colunas que estao indexas e a ordem e outras informacoes.

              []

              #78680
              gustavodesa
              Participante

                Segue o script:
                –Esse é para executar como administrador do banco. Basta informar o schema e o nome da tabela :

                set linesize 250
                select owner, index_name, index_type, table_name
                from dba_indexes
                where owner = ‘nome_schema’
                and table_name = ‘nome_tabela’

                –Esse é para executar para saber os indices que existem em uma tabela em que o usuario esta logado:

                set linesize 250
                select index_name, index_type, table_name
                from user_indexes
                where table_name = ‘nome_tabela’

                espero ter ajudado !!!

                Gustavo-CSIWAY

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