Buscar

Lab_01_OTB

Prévia do material em texto

*
Laboratório de OTB
Ajuste de performance em BD
*
Ambiente do experimento
Oracle 11G Versão 1.0.2
*
Indices em SGBD
Índices são estruturas usadas para melhorar a velocidade de busca em tabelas. Do mesmo jeito que uma pessoa utiliza um índice de um livro para achar alguma página sem ter a necessidade de passar por todas, o SGBD utiliza para buscar determinados campos de uma tabela. 
Na questão de performance os índices reduzem a utilização do recurso de E/S (entrada e saída) do computador. Recurso que pode deixar uma operação muito lenta por se tratar de um dispositivo mecânico.
*
Aplicação dos índices
A utilização de um índice deve ser analisada, pois junto com uma melhora no ato de buscar um dado, ocorre uma diminuição de desempenho no ato de inserção ou exclusão de dados, pois ao realizar esse tipo de operação, os índices devem ser imediatamente recalculados, para que continuem exatos, conforme o autor.
Além disso, ao se criar um índice de uma tabela, com um determinado tamanho, o índice ocupará uma porcentagem desse tamanho, necessitando de mais espaço em disco em relação a uma tabela sem índice.
Em termos gerais, se um banco possuir dados que não necessitam de muita atualização, o recurso do índice é muito recomendado. Porém, se for um banco muito ativo em termos de modificações, deve-se fazer uma análise para que o mesmo não seja prejudicado.
*
Tipos de indices
Índices exclusivos e não exclusivos: índices exclusivos são baseados em colunas únicas, geralmente algo como o RG ou CPF de funcionários. Já os índices não exclusivos, não empõem a restrição de unicidade. Esses índices são criados se nenhuma chave for utilizada em sua construção.
Índices primários e secundários: índices primários em uma tabela nunca devem ser nulos. Já índices secundários são índices da mesma tabela, mas que podem não ser únicos.
Índices compostos: são índices criados a partir de duas ou mais colunas de uma tabela. São úteis no caso de tabelas que são unificadas por mais de uma coluna.
*
Sintaxe SQL
*
Roteiro do experimento
Analisar o plano de execução no SQLDeveloper para as situações abaixo:
Consulta de registros sem PK
Consulta de registros com PK
Consulta do saldo total sem campo consolidado
Consulta do saldo total com campo consolidado
*
Consulta sem PK
Connect system/fatec
Documentar no relatório as constraints da tabela oe.product_descriptions;
Alter table oe.product_descriptions drop primary key;
Drop index oe.prd_desc_pk;
Select * from oe.product_descriptions where product_id = 3060 and language_id =‘US’;
Anotar o tempo de execução da consulta;
*
Consulta com PK
Alter table oe.product_descriptions add primary key (product_id, language_id );
Select * from oe.product_descriptions where product_id = 3060 and language_id =‘US’;
Anotar o tempo de execução;
Observar a diferença de valores
*
Consulta das vendas sem campo consolidado
Select CUST_ID, sum(AMOUNT_SOLD) from SH.sales WHERE PROD_ID = 116 group by CUST_ID;
Medir o tempo de execução da consulta
*
Consulta das vendas com campo consolidado
Create table sh.sales_summary as Select CUST_ID, PROD_ID, sum(AMOUNT_SOLD) AMOUNT_SOLD from SH.sales group by CUST_ID;
Alter table sh.sales_summary add primary key (PROD_id);
Select CUST_ID, AMOUNT_SOLD from SH.sales_summary WHERE PROD_ID = 116;
Anotar o tempo de execução;
Observar a diferença de valores

Continue navegando