Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Índices Oracle e tipos de índices no oracle com exemplo


Discutiremos índices/tipos de índices Oracle no oracle com o exemplo  nesta postagem. Vou falar sobre todas as opções sobre como criar um índice no oracle. Eu também estaria discutindo  como verificar o tamanho do índice no oracle. Espero que gostem deste post. Aguardo  comentários sobre esta postagem

O que são índices Oracle?

  • Assim como temos o índice presente nos livros didáticos para nos ajudar a encontrar o tópico específico no livro, o índice Oracle se comporta da mesma maneira. Temos diferentes tipos de índices no oracle.
  • Os índices são usados ​​para pesquisar as linhas na tabela oracle rapidamente. Se o índice não estiver presente, a consulta de seleção deve ler toda a tabela e retornar as linhas. Com o Index, as linhas podem ser recuperadas rapidamente
  • Devemos criar índices ao recuperar um pequeno número de linhas de uma tabela. ou para recuperar o primeiro conjunto de linhas o mais rápido possível de alguma consulta que acabará retornando um grande número de linhas. Também depende da distribuição de dados, ou seja, fator de agrupamento
  • Os índices são lógica e fisicamente independentes dos dados na tabela associada.
  • Os índices são estruturas opcionais associadas a tabelas e clusters. Você pode criar índices em uma ou mais colunas de uma tabela para acelerar a execução da instrução SQL nessa tabela.
  • Os índices são o principal meio de reduzir a E/S do disco quando usados ​​corretamente.
  • A consulta decide no início se deve usar o índice ou não
  • A melhor coisa com índices é que o desempenho de recuperação de dados indexados permanece quase constante, mesmo quando novas linhas são inseridas. No entanto, a presença de muitos índices em uma tabela diminui o desempenho de atualizações, exclusões e inserções porque o Oracle também deve atualizar os índices associados à tabela.
  • Se você for o  proprietário da tabela, poderá criar um índice ou se desejar criar um índice para a tabela em outro esquema, deverá ter o privilégio de sistema  CREATE ANY INDEX  ou o privilégio de índice nessa tabela

Tipo lógico de índices


Ele define as características de aplicação do Índice
Único ou não exclusivo Um índice pode ser Único ou não Único. Oracle cria um índice exclusivo para chave primária e restrições de chave exclusiva
Se índices não exclusivos já estiverem presentes nessa coluna, ele não criará um novo índice exclusivo para chave primária no Oracle
Composto O índice pode ser composto por uma ou várias colunas. Índices compostos podem acelerar a recuperação de dados para instruções SELECT nas quais a cláusula WHERE faz referência a todas ou à parte inicial das colunas no índice composto.
Índices baseados em função Os dados da coluna indexada são baseados em um cálculo
Índices de domínio do aplicativo Este índice é usado em aplicações especiais (espacial, texto).



O que é a pseudocoluna ROWID


ROWID retorna o endereço de cada linha na tabela. O Oracle atribui um ROWID a cada linha. O ROWID consiste no seguinte
  • O número do objeto de dados do objeto
  • O bloco de dados no arquivo de dados no qual a linha reside
  • A posição da linha no bloco de dados (a primeira linha é 0)
  • O arquivo de dados no qual a linha reside (o primeiro arquivo é 1). O número do arquivo é relativo ao tablespace.

O Oracle usa ROWID internamente para acessar linhas. Por exemplo, o Oracle armazena ROWID no índice e o usa para acessar a linha na tabela.

Você pode exibir o ROWID de linhas usando o comando SELECT da seguinte forma:

selecione rowid, emp_name de emp;

ROWID EMP_NAME

AAADC576474722aSAAA   John

A Oracle fornece um pacote chamado DBMS_ROWID para decodificar ROWID.

Depois que uma linha é atribuída a um ROWID, o Oracle não altera o ROWID durante o tempo de vida da linha. Mas isso muda quando a tabela é reconstruída Quando as linhas são movidas pela partição ou quando a tabela é reduzida

Tipos de índices no oráculo com exemplo


Existem 6 tipos diferentes de índices no oracle

(1) B-Árvore

(2) Árvore B Comprimida

(3)  Bitmap

(4) Baseado em Função

(5) Chave Inversa (RKI)

(6) Tabela organizada por índice (IOT).

Vamos descobrir cada um deles em detalhes e como criar um índice no oracle para cada um desses tipos

B – Índice de árvore:

  • Os índices B-Tree (árvore balanceada) são o tipo mais comum de índice.
  • O índice B-Tree armazenou o ROWID e o valor da chave do índice em uma estrutura de árvore.
  • Ao criar um índice, um bloco ROOT é criado, depois os blocos BRANCH e, finalmente, os blocos LEAF.
  • Cada ramificação contém o intervalo de dados que seus blocos folha contêm, e cada raiz contém o intervalo de dados que suas ramificações contêm:
  • Os índices B-Tree são mais úteis em colunas que aparecem na cláusula where (SELECT … WHERE EMPNO=1).
  • O servidor Oracle mantém a árvore balanceada dividindo blocos de índice, quando novos dados são inseridos na tabela.
  • Sempre que uma instrução DML é executada na tabela do índice, ocorre atividade do índice, fazendo com que o índice cresça (adicione folhas e ramificações).

Vantagens
  • Todos os blocos de folhas da árvore estão na mesma profundidade.
  • Os índices de árvore B permanecem balanceados automaticamente.
  • Todos os blocos da árvore B estão, em média, três quartos cheios.
  • As árvores B oferecem excelente desempenho de recuperação para uma ampla variedade de consultas, incluindo pesquisas de correspondência exata e intervalo.
  • Inserções, atualizações e exclusões são eficientes, mantendo a ordem das chaves para recuperação rápida.
  • O desempenho da árvore B é bom para tabelas pequenas e grandes e não diminui à medida que o tamanho de uma tabela aumenta.
CREATE   INDEX ON  (,…)TABLESPACE ;ExampleCreate index   scott.exp_idx   na tabela scott.example(  name)Tablespace TOOLS; 

O que são índices de árvore B compactados

  • Os índices B-Tree compactados são criados em tabelas grandes, em um ambiente de data warehouse. Nesse tipo de índice, as ocorrências duplicadas do mesmo valor são eliminadas, reduzindo assim a quantidade de espaço de armazenamento que o índice requer.
  • Em um índice B-Tree compactado, para cada valor de chave, uma lista de ROWIDs é mantida
  • Especificar a palavra-chave COMPRESS ao criar um índice (CREATE INDEX … COMPRESS) criará um índice B-Tree compactado.
  • Um índice B-Tree regular pode ser reconstruído usando a palavra-chave COMPRESS para comprimi-lo.
CREATE   INDEX ON  (,…)PCTFREE TABLESPACE Compress  

O que são índices de bitmap

  • Os índices de bitmap são mais apropriados em dados de baixa cardinalidade distinta (em oposição aos índices B-Tree).
  • Esse tipo de índice cria um mapa binário de todos os valores de índice e armazena esse mapa nos blocos de índice, isso significa que o índice exigirá menos espaço que o índice B-Tree.
  • Cada bit no bitmap corresponde a um possível rowid. Se o bit estiver definido, significa que a linha com o rowid correspondente contém o valor da chave. Uma função de mapeamento converte a posição do bit em um rowid real, de modo que o índice de bitmap fornece a mesma funcionalidade que um índice regular, embora use uma representação diferente internamente. Se o número de valores de chave diferentes for pequeno, os índices de bitmap são muito eficientes em termos de espaço
  • Quando houver índices de bitmap em tabelas, as atualizações removerão bloqueios de tabela completos. Portanto, o índice de bitmap é útil em colunas grandes com atividade de baixo DML (atualizações infrequentes) ou tabelas somente leitura. Essa é a razão pela qual você geralmente descobre que os índices de bitmap são amplamente usados ​​no ambiente de data warehouse (DWH).
  • A estrutura de índice de bitmap contém um mapa de bits que indica o valor na coluna, por exemplo, para a coluna GENDER, o bloco de índice conterá o ROWID inicial, o ROWID final e o mapa de bits:
  • Os índices de bitmap são muito úteis quando criados em colunas com baixa cardinalidade, usados ​​com o operador AND &OR na condição de consulta:
CREATE BITMAP  INDEX ON  (,…)PCTFREE TABLESPACE 

Exemplo
CREATE BITMAP INDEX ON emp_data(gender);SELECT COUNT(*) FROM emp_dataWHERE GENDER='M”;

Vantagens dos índices de bitmap
  • Tempo de resposta reduzido para grandes classes de consultas
  • Uma redução substancial do uso de espaço em comparação com outras técnicas de indexação
  • Grandes ganhos de desempenho, mesmo em hardware de baixo custo
  • DML e cargas paralelas muito eficientes

Índices baseados em função


Índices baseados em função são índices criados em colunas nas quais uma função geralmente é aplicada.

Ao usar uma função em uma coluna indexada, o índice é ignorado, portanto, um índice baseado em função é muito útil para essas operações.
CREATE INDEX ON  [ Function(,;ExampleCREATE INDEX EMP_IDX on EMP(UPPER(ENAME));SELECT *FROM EmpWHERE UPPER(Ename) como 'JOÃO';

O que são índices de chave reversa

  • Eles  são tipos especiais de índices B-Tree e são muito úteis quando criados em colunas que contêm números sequenciais.
  • Ao usar uma B-Tree normal, o índice crescerá para ter muitas ramificações e talvez vários níveis, causando degradação de desempenho, o RKI resolve o problema revertendo os bytes de cada chave de coluna e indexando os novos dados.
  • l>
  • Esse método distribui os dados uniformemente no índice. A criação de um RKI é feita usando a palavra-chave REVERSE:CREATE INDEX … ON … REVERSE;
CREATE INDEX ON  ()TABLESPACE REVERSE;ExampleCREATE INDEX emp_idx i ON emp_table (nome, sobrenome) REVERSE;

O que são tabelas organizadas por índice (IOT)

  • Quando estamos usando os índices B-Tree, bitmap e chave reversa são usados ​​para tabelas que armazenam dados de forma não ordenada (tabelas heap).
  • Esses índices contêm a localização do ROWID da linha da tabela necessária, permitindo acesso direto aos dados da linha
  • Uma tabela organizada por índice difere de uma tabela comum porque os dados da tabela são mantidos em seu índice associado. Alterações nos dados da tabela, como adicionar novas linhas, atualizar linhas ou excluir linhas, resultam na atualização do índice.
  • A tabela organizada por índice é como uma tabela comum com um índice em uma ou mais de suas colunas, mas em vez de manter dois armazenamentos separados para a tabela e o índice de árvore B, o sistema de banco de dados mantém apenas um único B- índice de árvore que contém o valor de chave codificado e os valores de coluna associados para a linha correspondente. Em vez de ter o rowid de uma linha como o segundo elemento da entrada do índice, a linha de dados real é armazenada no índice da árvore B. As linhas de dados são criadas na chave primária da tabela e cada entrada de índice de árvore B contém . As tabelas organizadas por índice são adequadas para acessar dados pela chave primária ou qualquer chave que seja um prefixo válido da chave primária.
  • Não há duplicação de valores de chave porque somente valores de coluna não chave são armazenados com a chave. Você pode criar índices secundários para fornecer acesso eficiente por outras colunas. Os aplicativos manipulam a tabela organizada por índice como uma tabela comum, usando instruções SQL. No entanto, o sistema de banco de dados executa todas as operações manipulando o índice de árvore B correspondente.

Recursos da tabela organizada por índice
  • A chave primária identifica exclusivamente uma linha; a chave primária deve ser especificada
  • Acesso baseado em chave primária
  • O rowid lógico na pseudocoluna ROWID permite construir índices secundários
  • Restrição ÚNICA não permitida, mas acionadores são permitidos
  • Não pode ser armazenado em um cluster
  • Pode conter colunas LOB, mas não colunas LONG
  • Distribuição e replicação não suportadas



CREATE TABLE comando:CREATE TABLE …ORGANIZATION INDEX TABLESPACE … (especifique que isso é um IOT)PCTTHRESHOLD … (especifique % do bloco a ser retido para armazenar dados de linha, válido de 0 a 50 (padrão 50))INCLUINDO … (especifique qual coluna quebrar uma linha quando o comprimento da linha exceder PCTTHRESHOLD) OVERFLOW TABLESPACE … (especifique o tablespace onde a segunda parte da linha será armazenada) MAPPING TABLE; (causa a criação de uma tabela de mapeamento, necessária ao criar o índice Bitmap no IOT)

A Mapping Table mapeia os ROWIDs físicos do índice para ROWIDs lógicos no IOT. A IOT usa ROWIDs lógicos para gerenciar o acesso à tabela por índice porque os ROWIDs físicos são alterados sempre que os dados são adicionados ou removidos da tabela. Para distinguir o IOT de outros índices, consulte a visualização USER_INDEXES usando a coluna pct_direct_access. Apenas IOT terá um valor não NULL para esta coluna.

Índices de domínio do aplicativo


A Oracle fornece indexação extensível para acomodar índices em tipos de dados complexos, como documentos, dados espaciais, imagens e videoclipes e fazer uso de técnicas de indexação especializadas.

Com a indexação extensível, você pode encapsular rotinas de gerenciamento de índice específicas do aplicativo como um tipo de índice objeto de esquema e defina um índice de domínio (um índice específico do aplicativo) em colunas de tabela ou atributos de um tipo de objeto. A indexação extensível também fornece processamento eficiente de operador específico do aplicativo s.

O software aplicativo, chamado de cartridge e, controla a estrutura e o conteúdo de um índice de domínio. O servidor Oracle interage com o aplicativo para criar, manter e pesquisar o índice de domínio. A própria estrutura de índice pode ser armazenada no banco de dados Oracle como uma tabela organizada por índice ou externamente como um arquivo.

Usando índices de domínio

Os índices de domínio são criados usando a lógica de indexação fornecida por um tipo de índice definido pelo usuário. Um tipo de índice fornece um mecanismo eficiente para acessar dados que satisfazem determinados predicados de operador. Normalmente, o tipo de índice definido pelo usuário faz parte de uma opção Oracle, como a opção Espacial.

Por exemplo, o SpatialIndextype permite pesquisa e recuperação eficientes de dados espaciais que se sobrepõem a uma determinada caixa delimitadora.

O cartucho determina os parâmetros que você pode especificar na criação e manutenção do índice de domínio. Da mesma forma, as características de desempenho e armazenamento do índice de domínio são apresentadas na documentação específica do cartucho.

Até agora, abordamos diferentes tipos de índices no oracle com um exemplo, agora vamos verificar como alterá-los/descartar/recriá-los

Como recriar os índices/reconstruir o índice no oracle


Podemos usar a instrução ALTER INDEX … REBUILD para reorganizar ou compactar um índice existente ou para alterar suas características de armazenamento

A instrução REBUILD usa o índice existente como base para o novo.

ALTER INDEX … REBUILD geralmente é mais rápido do que descartar e recriar um índice.

Ele lê todos os blocos de índice usando E/S de vários blocos e descarta os blocos de ramificação.

Outra vantagem dessa abordagem é que o índice antigo ainda está disponível para consultas enquanto a reconstrução está em andamento.
Alterar índice    reconstruir;Alterar índice    reconstruir  espaço de tabela ;

Como escrever declarações que evitem o uso de índices

  • Você pode usar a dica do otimizador NO_INDEX para dar flexibilidade máxima ao CBO enquanto não permite o uso de um determinado índice.
  • Você pode usar a dica FULL para forçar o otimizador a escolher uma verificação de tabela completa em vez de uma verificação de índice.
  • Você pode usar as dicas INDEX, INDEX_COMBINE ou AND_EQUAL para forçar o otimizador a usar um índice ou um conjunto de índices listados em vez de outro.

Como coletar estatísticas para índices


As estatísticas de índice são reunidas usando a instrução ANALYZE INDEX ou dbms_stats.

As opções disponíveis são COMPUTE/ESTIMATE STATISTICS ou VALIDATE STRUCTURE.

A partir de 10g, quando o índice é criado, as estatísticas de computação são feitas automaticamente

Ao usar a estrutura de validação, o Oracle preenche a visualização INDEX_STATS com estatísticas relacionadas ao índice analisado. As estatísticas contêm o número de linhas e blocos de folhas (LF_ROWS, LF_BLKS), número de linhas e blocos de ramificações (BR_ROWS, BR_BLKS), número de linhas de folhas excluídas (DEL_LF_ROWS), espaço usado (USED_SPACE), número de chaves distintas (DISTINCT_KEYS) , etc. Essas estatísticas podem ser usadas para determinar se o índice deve ser recriado ou não

Como a Oracle decide sobre o uso do índice?


O Oracle decide automaticamente se o índice deve ser usado pelo mecanismo do Optimizer.

A Oracle decide se deve usar um índice ou não dependendo da consulta.

A Oracle pode entender se o uso de um índice melhorará o desempenho na consulta fornecida. Se o Oracle achar que usar um índice melhorará o desempenho, ele usará o índice, caso contrário, ignorará o índice.

Vamos   entender por este exemplo

Temos uma tabela emp   que contém emp_name, salário,dept_no ,emp_no,date_of_joining e temos um índice em emp_name

Consulta 1
selecione * de emp  onde emp_name ='John';

A consulta acima usará o índice, pois estamos tentando obter informações sobre um emp com base no nome.

Consulta 2
selecione * de emp;

A consulta acima não usará o índice, pois estamos tentando encontrar todas as linhas na tabela e não temos a cláusula where na consulta

Consulta 3
selecione * de emp onde dept_no =5;

A consulta acima não usará o índice, pois a cláusula where não seleciona a coluna que tem um índice

Consulta 4
selecione * de emp onde substr(emp_name,1,4) ='XYZW';

A consulta acima não usará o índice, pois a cláusula where usa a função na coluna e não temos um índice funcional em emp_name

Como criar ou reconstruir o índice Online?


O Oracle costumava bloquear a tabela na qual o índice está sendo criado durante todo o processo de criação em versões mais antigas. Isso torna a tabela indisponível para manipulação de dados durante a criação do índice.

Agora com 8i, a Oracle introduziu a reconstrução online do índice onde a Oracle não bloqueia a tabela na qual o índice está sendo construído.

A indexação online é fornecida através da palavra-chave ONLINE.
CREATE   INDEX ON  (,…)PCTFREE TABLESPACE Online;Alter index  reconstruir online;

Basicamente, com uma reconstrução online, o Oracle bloqueia a tabela no início e no final da criação do índice. Permite transações intermediárias. O mecanismo foi bastante melhorado com 11g e 12c

Quais são as desvantagens dos  índices


Os índices aumentam o desempenho de uma consulta selecionada, mas também podem diminuir o desempenho da manipulação de dados.

Muitos índices em uma tabela podem diminuir drasticamente INSERTS e DELETES

Quanto mais índices houver na tabela, mais tempo serão necessárias para inserções e exclusões.

Da mesma forma, cada alteração em uma coluna indexada precisará de uma alteração no índice.

Portanto, precisamos escolher o índice com muito cuidado e descartar os que não estão em uso.

Embora o espaço extra ocupado pelos índices também seja uma consideração, pode não importar muito, pois o custo do armazenamento de dados diminuiu substancialmente.

O que são índices inutilizáveis


Um índice inutilizável é ignorado pelo otimizador ao decidir o plano de explicação

Ele também não é mantido pelo DML, ou seja, atualizar, inserir, excluir faz a atualização do índice

Pode haver vários motivos para o índice estar em um estado inutilizável. Você fez a reconstrução da tabela, mas não recriou o índice, então o índice ficará em um estado inutilizável. Um outro motivo para tornar um índice inutilizável é melhorar o desempenho do carregamento em massa. Outro motivo pode ser o otimizador pegar o índice errado toda vez e o tempo é crítico, então você pode decidir torná-lo inutilizável

Um índice ou partição de índice inutilizável deve ser reconstruída ou descartada e recriada antes de poder ser usada. Truncar uma tabela torna um índice inutilizável válido.

A partir do Oracle Database 11g Release 2, quando você torna um índice existente inutilizável, seu segmento de índice é descartado.

A funcionalidade de índices inutilizáveis ​​depende da configuração do parâmetro de inicialização SKIP_UNUSABLE_INDEXES.

Quando SKIP_UNUSABLE_INDEXES for TRUE (o padrão), então:

As instruções DML na tabela continuam, mas os índices inutilizáveis ​​não são mantidos.

As instruções DML terminam com um erro se houver algum índice inutilizável usado para impor a restrição UNIQUE.

Para índices não particionados, o otimizador não considera nenhum índice inutilizável ao criar um plano de acesso para instruções SELECT. A única exceção é quando um índice é especificado explicitamente com a dica INDEX().

Quando SKIP_UNUSABLE_INDEXES for FALSE, então:

Se houver índices ou partições de índice inutilizáveis, todas as instruções DML que fariam com que esses índices ou partições de índice fossem atualizadas serão encerradas com um erro.

Para instruções SELECT, se um índice inutilizável ou uma partição de índice inutilizável estiver presente, mas o otimizador não optar por usá-lo para o plano de acesso, a instrução continuará. No entanto, se o otimizador optar por usar o índice inutilizável ou a partição de índice inutilizável, a instrução será encerrada com um erro.

Visualizações do dicionário de dados em  Índices

DBA_INDEXES ALL_INDEXES USER_INDEXES A visão DBA descreve os índices em todas as tabelas do banco de dados. A visão ALL descreve índices em todas as tabelas acessíveis ao usuário. A visualização USER é restrita a índices de propriedade do usuário. Algumas colunas nessas visualizações contêm estatísticas geradas pelo pacote DBMS_STATS ou pela instrução ANALYZE.
DBA_IND_COLUMNS ALL_IND_COLUMNS
USER_IND_COLUMNS
Essas visualizações descrevem as colunas de índices nas tabelas. Algumas colunas nessas visualizações contêm estatísticas geradas pelo pacote DBMS_STATS ou pela instrução ANALYZE.
DBA_IND_EXPRESSIONS ALL_IND_EXPRESSIONS
USER_IND_EXPRESSIONS
Essas visualizações descrevem as expressões de índices baseados em funções em tabelas.
DBA_IND_STATISTICS ALL_IND_STATISTICS
USER_IND_STATISTICS
Essas visualizações contêm estatísticas do otimizador para índices.

como encontrar índices em uma tabela

definir o tamanho da página 50000 verificar off echo offcol table_name head 'Table Name' format a20col index_name head 'Index Name' format a25col column_name head 'Column Name' formato a30break on table_name em index_nameselect     table_name, index_name, column_namefrom all_ind_columnswhere table_name like upper('&Table_Name ')ordem por table_name, index_name, column_position/

Como determinar o tamanho do índice

Tamanho do ÍNDICE selecione segment_name,sum(bytes)/1024/1024/1024 como "SIZE in GB" de user_segments onde segment_name='INDEX_NAME' group by segment_name;OU selecione owner,segment_name,sum(bytes)/1024/1024/1024 como "SIZE in GB" de dba_segments onde proprietário='SCHEMA_NAME' e segment_name='INDEX_NAME' agrupam por proprietário,segment_name; Lista de tamanho de todos os ÍNDICES de um USUÁRIO selecione segment_name,sum(bytes)/1024/1024/1024 como "SIZE in GB" de user_segments onde segment_type='INDEX' group by segment_name order by "SIZE in GB" desc;ORselect owner,segment_name,sum(bytes)/1024 /1024/1024 como "SIZE in GB" de dba_segments onde owner='SCHEMA_NAME' e segment_type='INDEX' agrupam por proprietário,segment_name ordenam por "SIZE in GB" desc;Soma dos tamanhos de todos os índices selecione owner,sum(bytes)/1024/1024/1024 como "SIZE in GB" de dba_segments onde owner='SCHEMA_NAME' e segment_type='INDEX' agrupam por proprietário;

Como determinar o índice  definição
set long 4000select dbms_metadata.get_ddl('INDEX','',' 
Como determinar as estatísticas do Índice
definir páginas 250 definir tamanho de linha 100 definir offcol table_name formato a24 título 'TABLE NAME' col index_name formato a23 título 'INDEX NAME' col u formato a1 título 'U'col blevel formato 0 título 'BL'col leaf_blocks formato 999990 título 'LEAF |BLOCKS'col distinct_keys format 9999990 header 'DISTINCT|KEYS'col avg_leaf_blocks_per_key format 9999990 header 'LEAF|BLKS|/KEY'col avg_data_blocks_per_key format 9999990 header 'DATA|BLKS|/KEY'rembreak on table_nameremselect table_name, index_name,decode(unicidade, 'UNIQUE', 'U', null ) u,blevel, leaf_blocks, distinct_keys,avg_leaf_blocks_per_key, avg_data_blocks_per_keyfrom sys.dba_indexeswhere table_owner como upper('&owner') e table_name como upper('&table')order by table_owner, table_name, index_name; 
 Artigos relacionados

tabelas externas no Oracle :Confira este post para obter informações sobre o uso das tabelas externas no oracle com um exemplo, como criar uma tabela externa, como usá-la
Oracle Create table :Tables are the basic unit of data armazenamento em um banco de dados Oracle. abordamos como usar o comando create table do Oracle para criar uma tabela com uma chave estrangeira/chave primária
instrução de criação de tablespace do oracle:Este artigo sobre como criar tablespace no oracle, várias características associadas a ele e diferentes instruções create tablespace
Encontre o status dos índices e as colunas atribuídas a uma tabela
Índice Virtual no Oracle:O que é o Índice Virtual no Oracle? Usos, limitação, vantagem e como usar para verificar o plano de explicação no banco de dados Oracle, parâmetro oculto _USE_NOSEGMENT_INDEXES
Fator de clustering Oracle Index:Como o fator de clustering Oracle Index é calculado e como isso afeta o plano de explicação
Partição Oracle Índice :Entendendo o índice de partição Oracle,O que são índices globais não particionados?, O que são índices prefixados locais, índice local não prefixado

Cursos recomendados


Aqui está o bom curso da Udemy para Oracle SQL
Oracle-Sql-Step-by-step:Este curso abrange sql básico, junções, criação de tabelas e modificação de sua estrutura, criação de exibição, união, união -tudo e muitas outras coisas . Um ótimo curso e curso obrigatório para iniciantes em SQL
O Curso Completo de Certificação Oracle SQL :Este é um bom curso para quem quer estar pronto para trabalhar com habilidades de desenvolvedor SQL. Um bom curso explicado
Oracle SQL Developer:Essentials, Tips and Tricks :A ferramenta de desenvolvedor Oracle Sql está sendo usada por muitos desenvolvedores. Este curso nos dá truques e lições sobre como usá-lo efetivamente e se tornar um desenvolvedor sql produtivo
Oracle SQL Performance Tuning Masterclass 2020 :O ajuste de desempenho é uma das habilidades críticas e mais procuradas. Este é um bom curso para aprender sobre isso e começar a fazer o ajuste de desempenho do sql