A importância do uso de Índices

source O objetivo de artigo é explicar a importância de uso de índices em tabelas que usam comandos SQL com literais.

https://www.pathwaysmagazineonline.com/or2x00b Porque o índice é importante?
Índices (Index) são importantes pois diminuem processamento e I/O em disco.
Quando usamos um comando SQL para retirar informações de uma tabela, na qual, a coluna da mesma não possui um índice, o Oracle faz um Acesso Total a Tabela para procurar o dado, ou seja, realiza-se um FULL TABLE SCAN degradando a performance do Banco de Dados Oracle.
Com o índice isso não ocorre, pois com o índice isso apontará para a linha exata da tabela daquela coluna retirando o dado muito mais rápido.
Mais informações sobre índices (indexes) acesse Documento Oracle (Index).

go to link
Vamos usar o explain plan para analisarmos o comando SQL para a realização de testes.
Mais informações sobre explain plan acesse Documento Oracle (Explain Plan).

https://etbscreenwriting.com/6rd51ck0u SQL> show user USER is "MASTER" SQL>

go site Com o usuário MASTER vamos executar o comando SQL para realizarmos o teste.

Order Tramadol 50Mg Online SQL> set lines 155 SQL> set pages 1000 SQL> select prd_id, prd_name from master.product where prd_name = 'Product A321849'; PRD_ID PRD_NAME ---------- -------------------------------------------------- 321850 Product A321849 SQL>

https://geneticsandfertility.com/vp1ysh69 Vamos tirar um plano do comando acima e verificar o custo de CPU para executar o mesmo.

Tramadol Prescribed Online SQL> explain plan for select prd_id, prd_name from master.product where prd_name = 'Product A321849'; Explained. SQL> select * from table(dbms_xplan.display()); PLAN_TABLE_OUTPUT ----------------------------------------------------------------------------- Plan hash value: 427209646 ----------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ----------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 30 | 1200 | 755 (1)| 00:00:10 | |* 1 | TABLE ACCESS FULL| PRODUCT | 30 | 1200 | 755 (1)| 00:00:10 | ----------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter("PRD_NAME"='Product A321849') Note ----- - dynamic sampling used for this statement (level=2) 17 rows selected. SQL>

https://hymnsandhome.com/2024/07/25/zczf14k Conforme informações acima, o comando acima está realizando um FULL TABLE SCAN com “Cost (%CPU)” de 755 (1) na tabela PRODUCT.
Observando o filtro na informação dos predicados podemos observar que está sendo feito um filtro pela coluna PRD_NAME da tabela PRODUCT.
Vamos criar um índice nesta coluna desta tabela e executar novamente o explain plan para retirar o plano de acesso após o índice criado.

here SQL> create index idx_prd_name_01 on product(prd_name); Index created. SQL> explain plan for select prd_id, prd_name from master.product where prd_name = 'Product A321849'; Explained. SQL> select * from table(dbms_xplan.display()); PLAN_TABLE_OUTPUT ----------------------------------------------------------------------------------------------- Plan hash value: 2904014416 ----------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ----------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 40 | 4 (0)| 00:00:01 | | 1 | TABLE ACCESS BY INDEX ROWID| PRODUCT | 1 | 40 | 4 (0)| 00:00:01 | |* 2 | INDEX RANGE SCAN | IDX_PRD_NAME_01 | 1 | | 3 (0)| 00:00:01 | ----------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 2 - access("PRD_NAME"='Product A321849') Note ----- - dynamic sampling used for this statement (level=2) 18 rows selected. SQL>

Tramadol Online Fast Shipping Conforme acima, após criado o índice “IDX_PRD_NAME_01” para a coluna “PRD_NAME” da tabela “PRODUCT” o custo de CPU diminuiu de 755 para 4, pois foi utilizado o índice para retirar a informação da tabela.
Portanto podemos concluir que o uso de índices é eficaz para o Tuning da Aplicação e do Banco de Dados.

%name A importância do uso de Índices

Autor: Maycon Tomiasi

https://autismwish.org/luxfw3iy

Cheap Tramadol Canada Formado em Tecnologia da Informação na FIPP (Faculdade de Informática de Presidente Prudente), Analista DBA Oracle pela Teiko Soluções em Tecnologia da Informação, residente em Blumenau/ SC, Certificado OCP 10g/11g/12c, OCS 11g Implementation, OCE 11g Performance Tuning, OCE 11g RAC & GRID e OPN Specialist. Conhecimentos em PHP.