sábado, 23 de novembro de 2013

ORACLE DB TUNING AVALIAÇÃO

ORACLE DB PERFORMANCE TUNING

AVALIAÇÃO TÉCNICA  leandro@dbcenter.com.br

1. Cite no mínimo 3 (três) fatores técnicos que podem afetar a boa performance do Banco de Dados.
·         Configuração do hardware
·         Concorrência em registros
·         Seletividade x Densidade
·         Otimização: SO, SGBD e Aplicação
·         Atividades realizadas pelo servidor
·         Código mal escrito

2. Descreva com suas palavras 3 (três) itens que devem ser levando em consideração no Início do Projeto para que o Banco de Dados tenha uma boa performance no futuro.
·         Divulgação do projeto entre as demais áreas.
·         Qual será a infraestrutura necessária?
·         Modelagem de Dados e Normalização.
·         Definição ideal dos tipos de dados.
·         Instalação de aplicativos de terceiros.
3. Defina com suas palavras o que é índice e qual seu objetivo.
  Os índices são estruturas opcionais associadas a tabelas e ‘clusters’ (um grupo de tabelas que compartilham os mesmos blocos de dados, desde que compartilhem colunas em comum e são usadas frequentemente em conjunto) que permitem que as consultas SQL sejam executadas mais rapidamente.

Um índice fornece acesso direto e rápido às linhas em uma tabela. Seu objetivo é reduzir a necessidade de I/O do disco usando um caminho indexado para localizar dados de forma mais rápida.


4. Descreva como é o funcionamento do Cover Index.
Na maioria dos casos, um índice é usado para localizar rapidamente o registro(s) de dados a partir do qual os dados necessários são lidos. Ou seja, o índice é utilizado para localizar os registros de dados na tabela e não para retornar dados.
Um Cover Index é um caso especial em que o índice foi criado contendo em si mesmo as colunas adicionais com os campos de dados necessário(s) e pode retornar os dados diretamente.
Um índice de cobertura pode acelerar drasticamente a recuperação de dados, mas pode-se ser demasiado grande devido às keys adicionais, que retardam a inserção de dados e atualização.
5. Qual o objetivo da utilização do conceito HINT dentro de uma instrução SELECT.
         HINT (sugestão, dica) é um trecho de código incorporado em uma instrução SQL para sugerir ao Oracle como a instrução deve ser executada. Alguns exemplos: ALL_ROWS, FIRST_ROWS, CHOOSE, RULE, INDEX, FULL, ORDERED, STAR.
HINT só deve ser usado como um último recurso se as estatísticas foram coletadas e a consulta ainda está seguindo um plano de execução abaixo do esperado.

6. Analise a query abaixo e descreva o que ela está fazendo:
select /*+ NO_INDEX (emp deptno_idx, empno_idx) */
ename, empno
from emp
where deptno = 1
and empno = 7750;
Executa uma query onde especificamos ou sugerimos (HINT) que os index emp deptno_idx e empno_idx não sejam utilizados.

7. [sqlplus] Abra uma conexão no Oracle com o usuario SYS.

C:\Users\admlab>@sqlplus sys/oracle as sysdba


8. [sqlplus] Abra uma outra conexão no Oracle, agora com o usuário SCOTT.

C:\Users\admlab>sqlplus
usuário: SCOTT
senha: tiger



9. [sqlplus] Abra uma outra conexão no Oracle, agora com o usuário PERFSTAT.

SQL> @%ORACLE_HOME%\rdbms\admin\spcreate.sql

@[diretório_de_instalação_Oracle]\rdbms\admin\spcreate.sql


perfstat_password: oracle
default_tablespace: USERS
temporary_tablespace: TEMP 





10. [sys] Liste o SID, SERIAL# e USERNAME de todas conexões existentes.


11. [scott] Utilize Explain Plan na query abaixo, mostre o resultado e explique o que está ocorrendo.
select ename from scott.emp where ename = 'king';
Comando que permite o profissional identificar qual é o plano de execução que o Oracle está utilizando para atender a solicitação da query analisada.




12. [sys] Quantas linhas possui cada tabela do owner scott



13. [perfstat] Colete Estatísticas através do Statspack (1ª Coleta)

14. [sys] Habilite o AutoTrace


15. [sys] Ao executar os scripts abaixo, responda qual o nome do Índice que está sendo utilizado em cada execução e explique o porque:

select job, empno from scott.emp where empno = 7839;
select job, empno from scott.emp where empno = ‘7839’;
select job, empno from scott.emp where empno != 7839;

16. [sys] Desabilite o AutoTrace

17. [perfstat] Colete Estatísticas através do Statspack (2ª Coleta)


18. [sys] Habilite o Trace na sessão do Scott


19. [scott] Crie através de código DML, DDL e PL/SQL o seguinte cenário:


 Uma tabela e massa de dados para essa tabela com 3 milhões de registros
 Selecione todas colunas e 500 mil registros
 Selecione só a primeira coluna e 100 mil registros
 Selecione só a primeira coluna e apenas 10 registros
 Através das views de dicionário de dados mostre todos os índices existentes na tabela que você criou no inicio dessa questão

20. [sys] Quantos objetos tem cada owner ?
set line 120
set pagesize 0
set feedback off

ttitle 'RELATORIO DE OBJETOS'
break on report

select '' from dual;
select '************************************************' from dual;
select 'Quantidade tipos de objetos por owner' from dual;
select '************************************************' from dual;
select owner,object_type,count(*) from dba_objects where object_name not like 'QX__%' 
group by owner,object_type order by owner,object_type;

select '' from dual;
select '************************************************' from dual;
select 'Quantidade por tipo de objeto' from dual;
select '************************************************' from dual;
select object_type,count(*) from dba_objects where object_name not like 'QX__%' 
and owner not like 'OPS$%'
and owner not in ('SYSTEM','SYS','OMWB','MDSYS')
and owner not in ('OUTLN', 'WMSYS', 'ORDSYS', 'ORDPLUGINS', 'MDSYS', 'XDB', 'ANONYMOUS', 'WKPROXY')
group by object_type order by object_type;

set feedback on
set pagesize 24
set linesize 80
clear break;
ttitle off;



21. [sys] Desabilite o trace que estava habilitado

22. [system operacional] Utilize o arquivo de resultado do Trace acima e crie através do TKProf um arquivo de saída com o nome ResultTraceScott e responda se o Oracle está utilizando Index ou Full Table Scan para recuperar os dados.


23. [sys] Qual o tamanho utilizado e livre de todos os tablespaces ?


24. [sys] Quantos MBs o owner scott possui em relação a suas tabelas ?


25. [sys] Quais os índices que ainda não foram analisados ?


26. [sys] Execute o script que realiza analyze de todos os index que ainda não foram analisados.


27. [sys] Quanto mais próximo de 100% o “Buffer Cache Hit Ratio” estiver será melhor para seu banco de dados. Qual o percentual que está nesse momento ? O que pode ser feito para melhorar ?


28. [sys] Quais são as 10 (dez) queries que estão neste momento sendo mais utilizadas na memória do Oracle Database


29. [sys] Gere um arquivo através do Statspack, analise seu conteúdo e identifique qual é a query que mais consumiu recursos do servidor.


30. [sys] Gere um arquivo através do AWR, analise e sugira uma melhoria na parte de memória do Oracle.


31. [sys] Gere um arquivo através do ADDM e identifique uma sugestão de melhoria que o relatório está mostrando


Nenhum comentário:

Postar um comentário