Oracle Performance Diagnostics & Tuning 9iR1 a 11gR2
|
|
|
- Davi Vilanova Canário
- 10 Há anos
- Visualizações:
Transcrição
1 Oracle Performance Diagnostics & Tuning 9iR1 a 11gR2 Ricardo Portilho Proni [email protected] Esta obra está licenciada sob a licença Creative Commons Atribuição-SemDerivados 3.0 Brasil. Para ver uma cópia desta licença, visite 1
2 Minha abordagem Performance de Sistemas Computacionais só pode ser medida em TEMPO. Performance Tuning deve ser reativa. Performance Tuning deve ter ROI. Apenas os maiores gargalos devem ser solucionados. O processo deve ser Diagnostics, e depois Tuning. Alto consumo de CPU não é um problema. O usuário não executa um SQL por prazer. O desenvolvedor não deveria saber como fazer um bom SQL (COBOL?). Ferramentas Gráficas / Enterprise Manager / Wizards / Automação são bons auxiliares. Bancos com bom desempenho devem ser observados. Conheça outros RDBMSs: TI não é lugar para paixões. Não acredite em nada (separar tabelas e índices?). Teste. Se houvesse um parâmetro que sempre deixasse o Oracle mais rápido, sem nenhum efeito colateral, ele já viria habilitado. Desenvolva um método de convencimento gerencial. Por algo chamar-se Storage, não quer dizer que ele não tenha problemas. KISS (Keep It Simple, Stupid): a probabilidade de falha cresce linearmente com o aumento de complexidade. Saiba diser Não. Saiba dizer Não sei. 2
3 Performance Diagnostics & Tuning 3
4 Mistificação 4
5 Métodos Antigos 5
6 Requisitos Experiência Intuição Imprecisão Tempo Sorte Recursos 6
7 TOP Tuning Verificar maior consumidor de CPU; Verificar o SQL agressor; Alterar o SQL e esperar que o desempenho melhore; Adicionar Índices e esperar que o desempenho melhore; Se não melhorar, matar a sessão. Se o desempenho não melhorar, voltar ao início. 7
8 Checklist Tuning Verificar Sistema Operacional (free / taskmgr / Performance Monitor); Verificar Sistema Operacional (vmstat / taskmgr / Performance Monitor); Verificar Sistema Operacional (iostat / taskmgr / Performance Monitor); Verificar SGA; Verificar PGA; Verificar coleta de estatísticas; Verificar parâmetros do Oracle; Verificar fragmentação de tabelas; Verificar LOCKs; Verificar SQLs que consomem mais recursos; Construir uma teoria baseada nos dados observados; Alterar algo e esperar que o desempenho melhore; Se o cliente não gostar da teoria, apenas cite e altere alguns parâmetros relacionados; Se o desempenho não melhorar, voltar ao início. 8
9 Ratios Tuning Verificar Buffer Cache Hit Ratio; Verificar Data Dictionary Hit Ratio; Verificar SQL Cache Hit Ratio; Verificar Library Cache Hit Ratio; Construir uma teoria baseada nos dados observados; Alterar algo (geralmente aumentar) e esperar que o desempenho melhore; Se o desempenho não melhorar, voltar ao início. 9
10 KIWI Tuning KIWI = Kill It With Iron; Adicionar Memória RAM; Adicionar CPUs; Melhorar o I/O; Migrar para um Servidor maior; Migrar para RAC; Adicionar Nós no RAC; Pagar a conta, e esperar que o desempenho melhore. Se o desempenho não melhorar, voltar ao início. 10
11 Manager Tuning Migrar Banco para outro servidor; Executar Upgrade de Banco de Dados; Executar Upgrade da Aplicação; Executar Upgrade do Middleware; Juntar Aplicação e Banco de Dados; Separar Aplicação e Banco de Dados; Voltar Backups; Se o desempenho não melhorar, tentar outra coisa, até melhorar. 11
12 O que está errado? 12
13 Paradigma 13
14 Lendas do Oracle 14
15 Lendas do Oracle Todo teu SELECT deverá utilizar um índice, para que ele seja rápido. Terás uma área de SWAP com o dobro de tua RAM. Não utilizarás mais que 50% de tua RAM para a SGA. Utilizarás HINTs, pois tu és mais sábio que o Oracle. Não coletarás estatísticas do dicionário de dados. Deverás separar teus dados e índices. Deverás separar teus dados em diversas TABLESPACEs. Teus DATAFILEs deverão ter no máximo 2GB / 10GB / xgb. Não habilitarás AUTOEXTEND ON. Deverás executar COMMIT a cada N linhas. Utilizarás RAID 5, pois é mais rápido para leituras Não permitirás mais que um SWITCH a cada 20 minutos. Mas não terás grandes REDO LOGs. Executarás REBUILD de índices regularmente. Executarás MOVE de tabelas regularmente. Se grande a tabela tornar-se, a particionarás. Se quiseres mais velocidade, usarás RAC. Quanto mais CPUs, mais rápido teu banco de dados será. Se teus RATIOS estiverem altos, felizes estarão teus usuários. Sempre que possível, aumentarás seu DB_CACHE_SIZE e SHARED_POOL. Desabilitarás o AWR, pois ele causa lentidão. Não utilizarás memória automática. Tu és mais sábio que o Oracle. Se usar, deixarás a SGA_TARGET um pouco menor que a SGA_MAX_SIZE. AUTOMATIC SQL TUNING é um dos cavaleiros do apocalipse. 15
16 Arquitetura Oracle 16
17 UNDO Qual a transação mais longa que o sistema deve suportar? UNDO_RETENTION CREATE UNDO TABLESPACE RETENTION GUARANTEE AUTOEXTEND ON 17
18 SWAP 18
19 RAM x SGA [root@nerv01 ~]# free total used free shared buffers cached Mem: /+ buffers/cache: Swap: [root@nerv01 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 286G 12G 260G 5% / tmpfs 1.9G 0 1.9G 0% /dev/shm RAM Total do Servidor - (quantidade máxima de conexões simultâneas + 40) x 20MB - Memória do Sistema Operacional = (OLTP) 80% SGA e 20% PGA OU = (OLAP) 80% PGA e 20% SGA 19
20 Checkpoint Eventos relacionados control file single write control file parallel write control file sequential read db file single write 20
21 Tempo 21
22 Tempo Computacional R=S+W OU Response Time = Service Time + Wait Time 22
23 Instrumentação: Mainframe 23
24 Instrumentação: Solaris 24
25 Oracle Wait Interface 25
26 Oracle Wait Interface 26
27 Nascimento da OWI Benchmark : Juan Loainza YAPP Paper: Anjo Kolk 27
28 Evolução da OWI Versão : 104 Wait Events Versão 8: 140 Wait Events Versão 8i: 220 Wait Events Versão 9i: 400 Waits Events Versão 10gR1: >800 Wait Events Versão 11gR2: >1100 Wait Events 28
29 Enterprise Manager 29
30 Wait Classes Administrative Application Cluster Commit Concurrency Configuration Idle Network Other Queueing Scheduler System I/O User I/O 30
31 Conceitos Básicos 31
32 Parâmetros elementares db_block_size db_file_multiblock_read_count memory_max_target memory_target sga_max_size sga_target pga_aggregate_target db_cache_size (db_2k_cache_size, db_4k_cache_size, db_8k_cache_size...) buffer_pool_keep, buffer_pool_recycle shared_pool_size, shared_pool_reserved_size large_pool_size java_pool_size streams_pool_size result_cache_max_result, result_cache_max_size, result_cache_mode log_buffer fast_start_mttr_target log_checkpoint_interval, log_checkpoint_timeout 32
33 Hands ON! Parâmetros elementares 33
34 Lab 1.1: Parâmetros elementares Verifique os parâmetros elementares em seu banco de dados. Altere o parâmetro memory_max_target para 0; Altere o parâmetro memory_target para 0; Altere o parâmetro sga_max_size para metade da RAM da máquina; Altere o parâmetro sga_target para 0; Altere o parâmetro db_cache_size para metade do sga_max_size. Altere o parâmetro shared_pool_size para metade do db_cache_size. Altere o parâmetro pga_aggregate_target para 100M; 34
35 Granularidades de Análise SQL Statement Session Instance 35
36 Cenários de Análise Há lentidão agora. Tivemos lentidão ontem. 36
37 Ferramentas de Análise Dynamic Performance Views Extended SQL Trace (Event 10046) Statspack / AWR 37
38 Limitações da OWI 38
39 Limitações: OWI Não é um monitoramento End-to-End Sem dados de consumo de CPU Sem dados de consumo de Memória Bugs Imprecisões 39
40 Limitações: Views Sem histórico 40
41 Limitações: Extended SQL Trace Muitos dados Altíssima granularidade Desempenho Correlação de informações Sessões PARALLEL Sessões SHARED SERVER Waits só disponíveis em >=9iR1 Suporte oficial só em >10gR1 41
42 Limitações: Statspack / AWR Baixa granularidade Apenas histórico 42
43 Hands ON! Dynamic Performance Views 43
44 Lab 2.1: Views V$SYSTEM_EVENT V$SESSION_EVENT V$SESSION_WAIT Verifique as Dynamic Performance Views da OWI em seu banco de dados. Quais suas colunas mais importantes? Que Waits você tem em seu banco de dados? Habitue-se a seu conteúdo. 44
45 Wait Events mais comuns 45
46 Wait Events mais comuns buffer busy free buffer read by oher session control file single write / control file parallel write / control file sequential read db file single write / db file parallel read / db file parallel write db file scatteread read / db file sequential read direct path read / direct path write enqueue free buffer latch free / latch: library cache / latch: cache buffers chains library cache pin / library cache lock log buffer space log file parallel write / log file single write / log file sequential read log file switch (archiving needed) log file switch (checkpoint incomplete) / log file switch completion log file sync SQL*Net message from client / SQL*Net message to client SQL*Net more data from client / SQL*Net more data to client SQL*Net break/reset from client / SQL*Net break/reset to client 46
47 Hands ON! Simulando Wait Events Gravações 47
48 Lab 3.1: Gravações Habilite o usuário SCOTT. SQL> ALTER USER SCOTT ACCOUNT UNLOCK IDENTIFIED BY TIGER; SQL> GRANT SELECT ANY DICTIONARY TO SCOTT; Abra uma sessão com o SCOTT com SET TIMING ON. SQL> CONN SCOTT/TIGER SQL> SET TIMING ON Em outra sessão, com o SYS, verifique (várias vezes seguidas) o conteúdo da V$SESSION_WAIT durante a execução dos comandos do SCOTT a seguir. Com o usuário SCOTT, crie uma grande tabela, com pelo menos 2GB. SQL> CREATE TABLE T AS SELECT * FROM ALL_OBJECTS; SQL> INSERT INTO T SELECT * FROM T; Execute 8 vezes. SQL> COMMIT; 48
49 Lab 3.2: Gravações Feche e abra a sessão com o SCOTT com SET TIMING ON SQL> CONN SCOTT/TIGER SQL> SET TIMING ON Em outra sessão, com o SYS, verifique o conteúdo da V$SESSION_EVENT relacionado a sessão do SCOTT. SQL> SELECT SID FROM V$SESSION WHERE USERNAME = 'SCOTT'; SQL> SELECT EVENT, TOTAL_WAITS, TOTAL_TIMEOUTS, AVERAGE_WAIT FROM V$SESSION_EVENT WHERE SID = 17 ORDER BY 4; Com o usuário SCOTT, duplique a grande tabela. SQL> CREATE TABLE T2 AS SELECT * FROM T; Na sessão do SYS, após a duplicação da tabela, verifique novamente o conteúdo da V$SESSION_EVENT relacionado a sessão do SCOTT Remova a tabela T2, feche e abra a sessão com o SCOTT, e repita a operação. Durante a repetição da operação, verifique as mudanças do conteúdo da V$SESSION_EVENT relacionado a sessão do SCOTT. 49
50 Lab 3.3: Gravações Responda as seguintes perguntas: - Onde foi gasto mais tempo nesta sessão? - A que se referem os maiores Wait Events? - Qual dos maiores Wait Events podem ser reduzidos? - A eliminação de um Wait Event que pode ser reduzido, causará uma melhoria de quanto tempo? - Como reduzir este Wait Event? Corrija a causa deste Wait Event. Remova a tabela T2, feche e abra a sessão com o SCOTT, e repita a operação. 50
51 Lição de casa Verifiquem as Dynamic Performance Views de seus servidores. Tragam suas dúvidas para a aula. 51
52 Extended SQL Trace 52
53 Níveis Extended SQL Trace 0 = Standard Trace 4 = Bind Variables 8 = Wait States 12 = Bind Variables + Wait States 53
54 Ativar Extended SQL Trace Em toda a instância Em sua sessão Em outra sessão 54
55 Detalhes Extended SQL Trace *** :43: WAIT #9: nam='db file scattered read' ela= file#=4 block#=9124 blocks=26 obj#=74574 WAIT #9: nam='db file scattered read' ela= 2528 file#=4 block#=9150 blocks=26 obj#=74574 WAIT #9: nam='db file scattered read' ela= file#=4 block#=9176 blocks=26 obj#=74574 WAIT #9: nam='db file scattered read' ela= file#=4 block#=9202 blocks=26 obj#=74574 WAIT #9: nam='db file scattered read' ela= 1669 file#=4 block#=9228 blocks=26 obj#=74574 WAIT #9: nam='db file scattered read' ela= file#=4 block#=9254 blocks=26 obj#=74574 WAIT #9: nam='db file scattered read' ela= 4760 file#=4 block#=9280 blocks=26 obj#=74574 WAIT #9: nam='db file scattered read' ela= file#=4 block#=9306 blocks=26 obj#=74574 tim= ===================== 55
56 tkprof 56
57 Limitações: Extended Trace Não é um monitoramento End-to-End Sem dados de consumo de CPU Sem dados de consumo de Memória Bugs Imprecisões Muitos dados Altíssima granularidade Desempenho Correlação de informações Sessões PARALLEL Sessões SHARED SERVER Waits só disponíveis em >=9iR1 Suporte oficial só em >10gR1 57
58 Hands ON! Extended SQL Trace Full Table Scan 58
59 Lab 4.1: Extended SQL Trace Feche e abra a sessão com o SCOTT com SET TIMING ON SQL> EXIT $ sqlplus SCOTT/TIGER SQL> SET TIMING ON Com o usuário SYS, habilite o Extended Trace para a sessão do SCOTT: SQL> SELECT S.USERNAME, P.SPID OS_PROCESS_ID, P.PID ORACLE_PROCESS_ID FROM V$SESSION S, V$PROCESS P WHERE S.PADDR = P.ADDR AND S.USERNAME = 'SCOTT'; SQL> oradebug setospid 8708; SQL> oradebug tracefile_name; SQL> oradebug unlimit; SQL> oradebug event trace name context forever, level 12; Em outro terminal, verifique o conteúdo do Trace. $ tail -f /u01/app/oracle/diag/rdbms/test11gr2/test11gr2/trace/test11gr2_ora_8708.trc 59
60 Lab 4.2: Extended SQL Trace Com o usuário SCOTT, apague o conteúdo da grande tabela, altere o valor do parâmetro db_file_multiblock_read_count (apenas na sessão) e reinsira os dados. SQL> TRUNCATE TABLE T2; SQL> ALTER SESSION SET db_file_multiblock_read_count = 8; SQL> INSERT INTO T2 SELECT * FROM T; SQL> COMMIT; Continue verificando o conteúdo do Trace durante a execução da operação. Ao término da execução, verifique os valores de V$SESSION_EVENT da sessão do SCOTT. Guarde este resultado. Execute o tkprof nos Trace gerado. $ tkprof /u01/app/oracle/diag/rdbms/test11gr2/test11gr2/trace/test11gr2_ora_8708.trc Analise o relatório gerado pelo tkprof. Repita a operação, mas com db_file_multiblock_read_count de 50 e
61 Wait Events - Detalhes 61
62 Ensinar a Pescar 62
63 Referência 63
64 Performance Tuning Guide 64
65 MOS 65
66 buffer busy Explicação: O bloco solicitado está em uso, pois outra sessão está carregando o bloco para o DB_CACHE_SIZE, ou outra sessão está utilizando o bloco no DB_CACHE_SIZE em um modo incompatível. Causa: DB_CACHE_SIZE insuficiente, ou SQL ineficiente. Correção: Aumente o DB_CACHE_SIZE ou altere o SQL. P1: Número do DATAFILE. P2: Número do bloco. P3: ID a solicitação vem de diferentes locais da sessão. 66
67 buffer busy 67
68 free buffer Explicação: O RDBMS aguarda blocos de DB_CACHE_SIZE livres. Causa: DB_CACHE_SIZE insuficiente. Correção: Aumente o DB_CACHE_SIZE. P1: Número do DATAFILE. P2: Número do bloco. 68
69 read by other session Explicação: O bloco solicitado está em uso, pois outra sessão está carregando o bloco para o DB_CACHE_SIZE, ou outra sessão está utilizando o bloco no DB_CACHE_SIZE em um modo incompatível. Causa: DB_CACHE_SIZE insuficiente, ou SQL ineficiente. Correção: Aumente o DB_CACHE_SIZE ou altere o SQL. P1: Número do DATAFILE. P2: Número do bloco. P3: Razão (<10g). P3: Wait Class (>=10g). 69
70 control file parallel write Explicação: Espera de I/O para gravar em CONTROLFILEs. Causa: Excesso de gravação nos CONTROLFILEs ou I/O ineficiente. Correção: Minimize as gravações nos CONTROLFILEs ou melhore o mecanismo de I/O. P1: Quntidade de CONTROLFILEs. P2: Quantidade de blocos. P3: Quantidade de solicitações de I/O. 70
71 control file single write Explicação: Espera de I/O para gravar em CONTROLFILEs. Causa: Excesso de gravação nos CONTROLFILEs ou I/O ineficiente. Correção: Minimize as gravações nos CONTROLFILEs ou melhore o mecanismo de I/O. P1: Número do CONTROLFILE. P2: Número do bloco. P3: Quantidade de blocos. 71
72 control file sequential read Explicação: Espera de I/O para ler os CONTROLFILEs. Causa: Excesso de leitura nos CONTROLFILEs ou I/O ineficiente. Correção: Minimize as leituras nos CONTROLFILEs ou melhore o mecanismo de I/O. P1: Número do CONTROLFILE. P2: Número do bloco. P3: Quantidade de blocos. 72
73 db file parallel write Explicação: Gravações de dados nos DATAFILEs esperam pelo I/O. Causa: Excesso de gravações ou lentidão de I/O. Correção: Minimize as gravações ou melhore o mecanismo de I/O. P1: Quantidade de requisições. P2: Interrupt. P3: Timeout. 73
74 db file single write Explicação: Uma gravação no HEADER do DATAFILE espera pelo I/O. Causa: Excesso de gravações no HEADER dos DATAFILEs ou lentidão de I/O. Correção: Minimize as gravações no HEADER dos DATAFILEs ou melhore o mecanismo de I/O. P1: Quantidade de requisições. P2: Interrupt. P3: Timeout. 74
75 db file parallel read Explicação: Durante RECOVER ou durante PREFETCHING, leituras de DATAFILEs esperam pelo I/O. Causa: RECOVER muito longo, PREFETCHING excessivo, ou lentidão de I/O. Correção: Acelere o RECOVER, minimize o PREFETCHING, ou melhore o mecanismo de I/O. P1: Quantidade de DATAFILEs. P2: Quantidade de blocos. P3: Quantidade de requisições. 75
76 User I/O 76
77 Influenciando o Otimizador CURSOR_SHARING DB_FILE_MULTIBLOCK_READ_COUNT OPTIMIZER_INDEX_CACHING OPTIMIZER_INDEX_COST_ADJ OPTIMIZER_MODE PGA_AGGREGATE_TARGET STAR_TRANSFORMATION_ENABLED 77
78 db file scattered read Explicação: Durante FTS, leituras de DATAFILEs esperam pelo I/O. Causa: DB_CACHE_SIZE insuficiente, FTS desnecessário ou lentidão de I/O Correção: Aumente o DB_CACHE_SIZE, elimine o FTS, ou melhore o mecanismo de I/O. P1: Número do DATAFILE. P2: Bloco inicial. P3: Quantidade de blocos. 78
79 db file sequential read Explicação: Durante a leitura de um bloco, leituras de DATAFILEs esperam pelo mecanismo de I/O. Causa: DB_CACHE_SIZE insuficiente, leitura desnecessária ou lentidão de I/O Correção: Aumente o DB_CACHE_SIZE, elimine a leitura desnecessária, ou melhore o mecanismo de I/O. P1: Número do DATAFILE. P2: Bloco inicial. P3: Quantidade de blocos. 79
80 direct path read / direct path write Explicação: Leitura / gravação entre DATAFILEs / TEMPFILEs e PGA. Causa: PGA insuficiente, ou lentidão de I/O. Correção: Aumente a PGA, ou melhore o mecanismo de I/O. P1: Número do arquivo (DATAFILE ou TEMPFILE). P2: Bloco inicial. P3: Quantidade de blocos. 80
81 enqueue Explicação: Mecanismo de fila ordenada do RDBMS. Causa: Diversas, dependendo do tipo de fila. Correção: Diversas, dependendo do tipo de fila. P1: Tipo ou modo da enqueue. P2: ID1 (como na V$LOCK). P3: ID2 (como na V$LOCK). Problemas mais comuns: TX, Transaction TM, DML Enqueue HW, High-Water Lock SQ, Sequence Number Enqueue CF, Controlfile Transaction 81
82 latch free Explicação: Mecanismo de fila desordenada do RDBMS. Causa: Diversas, dependendo do tipo de fila. Correção: Diversas, dependendo do tipo de fila. P1: Endereço da Latch (como na V$LATCH). P2: Número da Latch (como na V$LATCH). P3: Quantidade de tentativas. Problemas mais comuns: shared pool library cache cache buffers lru chain cache buffers chains row cache objects 82
83 library cache pin / library cache lock Explicação: Uso incompatível do objeto entre duas sessões. Causa: Uso do objeto de forma incompatível entre duas sessões. Correção: Finalizar o uso do objeto por uma das sessões. P1: Endereço do objeto. P2: Endereço do load lock. P3: Mode + Namespace. SQL> SELECT /*+ ORDERED */ W1.SID WAITING_SESSION, H1.SID HOLDING_SESSION, W.KGLLKTYPE LOCK_OR_PIN, W.KGLLKHDL ADDRESS, DECODE(H.KGLLKMOD,0, None,1, Null,2, Share,3, Exclusive,'Unknown ) MODE_HELD, DECODE(W.KGLLKREQ,0, None,1, Null,2, Share,3, Exclusive,'Unknown ) MODE_REQUESTED FROM DBA_KGLLOCK W, DBA_KGLLOCK H, V$SESSION W1, V$SESSION H1 WHERE (((H.KGLLKMOD!= 0) AND (H.KGLLKMOD!= 1) AND ((H.KGLLKREQ = 0) OR (H.KGLLKREQ = 1))) AND (((W.KGLLKMOD = 0) OR (W.KGLLKMOD= 1)) AND ((W.KGLLKREQ!= 0) AND (W.KGLLKREQ!= 1)))) AND W.KGLLKTYPE = H.KGLLKTYPE AND W.KGLLKHDL = H.KGLLKHDL AND W.KGLLKUSE = W1.SADDR AND H.KGLLKUSE = H1.SADDR; SQL> SELECT TO_NAME FROM V$OBJECT_DEPENDENCY WHERE TO_ADDRESS = F62750'; 83
84 log buffer space Explicação: Mais espaço no LOG_BUFFER é necessário para gravações. Causa: LOG_BUFFER insuficiente, REDO LOGs insuficientes, ou I/O lento. Correção: Aumente o LOG_BUFFER, aumente a quantidade / tamanho de REDO LOGs, ou melhore o mecanismo de I/O. P1: Quantidade de REDO LOGs. P2: Quantidade de blocos do sistema operacional. P3: Quantidade de requisições de I/O. 84
85 log file parallel write Explicação: Durante gravação de REDO LOGs, o LGWR espera pelo I/O. Causa: Excesso de membros nos grupos de REDO LOGs ou lentidão de I/O. Correção: Reduza a quantidade de membros nos grupos de REDO LOGs ou melhore o mecanismo de I/O. P1: Quantidade de REDO LOGs. P2: Quantidade de blocos de sistema operacional. P3: Quantidade de requisições de I/O. 85
86 log file single write Explicação: Durante gravação no HEADER de um REDO LOGs, o LGWR espera pelo I/O. Causa: Excesso de gravações no HEADER do REDO LOG ou lentidão de I/O. Correção: Reduza a quantidade de gravações no HEADER do REDO LOG ou melhore o mecanismo de I/O. P1: Número do REDO LOG. P2: Número do bloco. P3: Quantidade de blocos. 86
87 log file sequential read Explicação: Durante leitura de REDO LOGs, o LGWR espera pelo I/O. Causa: Lentidão de I/O. Correção: Melhore o mecanismo de I/O. P1: Número do REDO LOG. P2: Número do bloco. P3: Quantidade de blocos. 87
88 log file switch Explicação: Todos os grupos de REDO LOGs foram utilizados e ainda são necessários para um eventual RECOVER, pois o ARCn ainda não criou os ARCHIVED REDO LOGs e o DBWR ainda não gravou seu conteúdo nos DATAFILEs. Causa: REDO LOGs sub-dimensionados, configuração inadequada de destino de ARCHIVED REDO LOGs ou I/O ineficiente. Correção: Aumentar os REDO LOGs em quantidade e/ou tamanho, corrigir a configuração de destino do ARCn, ou melhorar o mecanismo de I/O. P1: Não utilizado. P2: Não utilizado. P3: Não utilizado. Variações: log file switch (archiving needed) log file switch (checkpoint incomplete) log file switch (clearing log file) log file switch (private strand flush incomplete) log file switch completion 88
89 log file sync Explicação: Um CHECKPOINT foi executado, e precisa ser registrado no REDO LOG, e o LGRW está aguardando pelo mecanismo de I/O. Causa: COMMIT em quantidade excessiva, ou I/O ineficiente. Correção: Reduzir a quantidade de COMMITs ou otimizar o mecanismo de I/O. P1: Número do Log Buffer. P2: Não utilizado. P3: Não utilizado. 89
90 SQL*Net message to / from client Explicação: Espera durante comunicação via rede com o protocolo SQL*Net. Causa: Sessão inativa, latência de rede ou limitação do cliente. Correção: Eliminar a sessão inativa, minimizar a latência na rede ou minimizar a limitação do cliente. P1: Driver de rede. P2: Quantidade de bytes. P3: Não utilizado. Variações SQL*Net message from client SQL*Net message to client SQL*Net more data from client SQL*Net more data to client SQL*Net break/reset to client SQL*Net message from dblink SQL*Net message to dblink SQL*Net more data from dblink SQL*Net more data to dblink SQL*Net break/reset to dblink 90
91 Hands ON! Simulando Wait Events LGWR x DBWR 91
92 Lab 5.1: LGWR x DBWR Feche e abra a sessão com o SCOTT com SET TIMING ON SQL> CONN SCOTT/TIGER SQL> SET TIMING ON Com o usuário SCOTT, apague o conteúdo da grande tabela, e reinsira os dados. SQL> TRUNCATE TABLE T2; SQL> INSERT INTO T2 SELECT * FROM T; SQL> COMMIT; Ao término da execução, verifique os valores de V$SESSION_EVENT da sessão do SCOTT. Guarde o resultado. Altere o valor do parâmetro log_buffer para 512k, repita a operação, e compare. Altere o valor do parâmetro log_buffer para 10m, repita a operação, e compare. Altere o valor do parâmetro log_buffer para 100m, repita a operação, e compare. Mantenha log_buffer com a configuração mais otimizada. Altere o parâmetro FAST_START_MTTR_TARGET para 1, repita a operação, e compare. 92
93 Parallel SQL 93
94 Parallel SQL Permite Query, DML e DDL. Um objeto pode ter Parallel permanente, independente do SQL: SQL> ALTER TABLE SCOTT.T PARALLEL DEGREE 4; O Parallel SQL pode ser utilizado diretamente no SQL: SQL> SELECT /*+ PARALLEL(T2 4) */ COUNT(*) FROM T2; 94
95 Parallel SQL Parâmetros: PARALLEL_ADAPTIVE_MULTI_USER = true ou false. PARALLEL_AUTOMATIC_TUNING: Deprecated. PARALLEL_DEGREE_LIMIT = CPU, IO ou Número. PARALLEL_DEGREE_POLICY = MANUAL, LIMITED ou AUTO. PARALLEL_EXECUTION_MESSAGE_SIZE = De 2148 a PARALLEL_FORCE_LOCAL = true ou false. PARALLEL_INSTANCE_GRouP = Oracle RAC service_name ou group_name. PARALLEL_IO_CAP_ENABLED = Deprecated. PARALLEL_MAX_SERVERS = De 0 a PARALLEL_MIN_PERCENT = De 0 a 100. PARALLEL_MIN_SERVERS = Número entre 0 e PARALLEL_MAX_SERVERS. PARALLEL_MIN_TIME_THRESHOLD = AUTO Segundos. PARALLEL_SERVERS_TARGET = Número entre 0 e PARALLEL_MAX_SERVERS. PARALLEL_THREADS_PER_CPU = Qualquer número. 95
96 Hands ON! Simulando Wait Events Design de Aplicação 96
97 Lab 6.1: Design de Aplicação Reinicie a Instance. Verifique o conteúdo da V$SYSTEM_EVENT. Guarde esta consulta. Abra a sessão com o SCOTT com SET TIMING ON. Em seguida, faça um SELECT da tabela toda. $ sqlplus SCOTT/TIGER SQL> SET TIMING ON SQL> SELECT COUNT(*) FROM T; Ao término da execução, verifique os valores de V$SESSION_EVENT da sessão do SCOTT. Guarde o resultado. Repita a operação com PARALLEL, e compare. SQL> SELECT /*+ PARALLEL(T 4) */ COUNT(*) FROM T; SQL> SELECT /*+ PARALLEL(T 20) */ COUNT(*) FROM T; 97
98 Paralelismo SQL> SELECT SID, SERIAL#, QCSID, QCSERIAL# FROM V$PX_SESSION; SID SERIAL# QCSID QCSERIAL#
99 Lab 6.2: Design de Aplicação Crie esta tabela com o usuário SCOTT: SQL> CREATE TABLE T3 (NUMERO NUMBER); Observe o conteúdo dos seguintes scripts Perl, os execute, e compare: $ perl /home/oracle/commitbad_bindsbad.pl $ perl /home/oracle/commitbad_bindsgood.pl $ perl /home/oracle/commitgood_bindsbad.pl $ perl /home/oracle/commitgood_bindsgood.pl 99
100 Lab 6.3: Design de Aplicação Crie um índice BITMAP na tabela T3 com o usuário SCOTT: SQL> CREATE BITMAP INDEX IDX_BITMAP_T3 ON T3(NUMERO); Execute um INSERT nesta tabela, sem executar COMMIT ou fechar a sessão.: SQL> INSERT INTO T3 VALUES (1); Abra outra sessão com o SCOTT, e faça outro INSERT na tabela T3: SQL> INSERT INTO T3 VALUES (1); Com o usuário SYS, verifique a V$SESSION_WAIT. Repita o exercício, mas utilizando um índice BTREE: SQL> DROP INDEX IDX_BITMAP_T3; SQL> CREATE INDEX IDX_T3 ON T3(NUMERO); 100
101 BITMAP x BTREE SQL> SELECT COUNT(*) FROM T; COUNT(1) Sem índice. SQL> SELECT COUNT(DISTINCT(OWNER)) FROM T; - - Sem índice. COUNT(DISTINCT(OWNER)) 28 Decorrido: 00:00:26.75 SQL> SELECT COUNT(DISTINCT(OWNER)) FROM T; - - Com índice BTREE. COUNT(DISTINCT(OWNER)) 28 Decorrido: 00:00:05.29 SQL> SELECT COUNT(DISTINCT(OWNER)) FROM T; - - Com índice BITMAP. COUNT(DISTINCT(OWNER)) 28 Decorrido: 00:00:
102 BITMAP x BTREE SQL> SELECT COUNT(*) FROM T; COUNT(1) SQL> SELECT COUNT(DISTINCT(OWNER)) FROM T; COUNT(DISTINCT(OWNER)) 28 SQL> SELECT COUNT(DISTINCT(OBJECT_NAME)) FROM T; -- Com índice BTREE COUNT(DISTINCT(OBJECT_NAME)) Decorrido: 00:00:08.95 SQL> SELECT COUNT(DISTINCT(OBJECT_NAME)) FROM T; Com índice BITMAP COUNT(DISTINCT(OBJECT_NAME)) Decorrido: 00:00:
103 Lab 6.4: Design de Aplicação Abra uma sessão com o usuário SCOTT com SET TIMING ON: Crie um índice BTREE na coluna OWNER da tabela T: SQL> CREATE INDEX IDX_T ON T(OWNER); Execute este SQL: SQL> SELECT COUNT(*) FROM T T_ALIAS WHERE OBJECT_NAME = 'T'; Com o usuário SYS, verifique o conteúdo da V$SESSION_EVENT da sessão do SCOTT. Guarde o resultado. Feche e abra a sessão com o SCOTT com SET TIMING ON Altere a sessão para utilizar o Rule Based Optimizer: SQL> ALTER SESSION SET OPTIMIZER_MODE=RULE; Execute este SQL: SQL> SELECT /*+ INDEX(T_ALIAS,IDX_T) */ COUNT(*) FROM T T_ALIAS WHERE OBJECT_NAME = 'T'; 103
104 Estatísticas 104
105 Estatísticas Optimizer Statistics Table statistics Number of rows Number of blocks Average row length Column statistics Number of distinct values (NDV) in column Number of nulls in column Data distribution (histogram) Extended statistics Index statistics Number of leaf blocks Levels Clustering factor System Statistics I/O performance and utilization CPU performance and utilization 105
106 Estatísticas DBMS_AUTO_TASK_ADMIN.DISABLE DBMS_STATS.GATHER_DATABASE_STATS DBMS_STATS.GATHER_DICTIONARY_STATS DBMS_STATS.GATHER_SCHEMA_STATS DBMS_STATS.GATHER_TABLE_STATS DBMS_STATS.GATHER_INDEX_STATS DBMS_STATS.DELETE_TABLE_STATS DBMS_STATS.LOCK_TABLE_STATS DBMS_STATS.EXPORT_*_STATS DBMS_STATS.IMPORT_*_STATS OPTIMIZER_DYNAMIC_SAMPLING DBMS_STATS.GATHER_SYSTEM_STATS 106
107 Hands ON! DBMS_SQLTUNE 107
108 Lab 7.1: DBMS_SQLTUNE Escolha um dos SQLs mais lentos na V$SQL e o analise com DBMS_SQLTUNE. DECLARE RET_VAL VARCHAR2(4000); BEGIN RET_VAL := DBMS_SQLTUNE.CREATE_TUNING_TASK(SQL_ID => ' ', SCOPE => DBMS_SQLTUNE.SCOPE_COMPREHENSIVE, TIME_LIMIT => 60, TASK_NAME => 'Portilho Tuning Task', DESCRIPTION => 'Portilho Tuning Task'); END; / BEGIN DBMS_SQLTUNE.EXECUTE_TUNING_TASK('Portilho Tuning Task'); END; / SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK('Portilho Tuning Task') RECOMMENTATION FROM DUAL; SELECT DBMS_SQLTUNE.SCRIPT_TUNING_TASK('Portilho Tuning Task') RECOMMENTATION FROM DUAL; BEGIN DBMS_SQLTUNE.DROP_TUNING_TASK('Portilho Tuning Task'); END; / 108
109 Fragmentação 109
110 Fragmentação Blocos logicamente contíguos espalhados fisicamente. Espaço livre na TABLESPACE / DATAFILEs. Espaço livre da TABELA. Espaço livre no ÍNDICE. Row Chaining. Migrated Rows. EXTENTs. 110
111 Fragmentação: COALESCE 111
112 Fragmentação: COALESCE 112
113 Fragmentação: Row Chaining 113
114 Fragmentação: Row Migration 114
115 Hands ON! DBMS_ADVANCED_REWRITE 115
116 Lab 8.1: DBMS_ADVANCED_REWRITE Abra uma sessão com o usuário SCOTT com SET TIMING ON: Altere a sessão para utilizar o Rule Based Optimizer: SQL> ALTER SESSION SET OPTIMIZER_MODE=RULE; Execute este SQL e anote seu tempo de execução: SQL> SELECT /*+ INDEX(T_ALIAS,IDX_T) */ COUNT(*) FROM T T_ALIAS WHERE OBJECT_NAME = 'T'; Execute este SQL e anote seu tempo de execução: SQL> SELECT COUNT(*) FROM T T_ALIAS WHERE OBJECT_NAME = 'T'; Com o usuário SYS, dê as permissões necessárias para que o usuário SCOTT utilize o DBMS_ADVANCED_REWRITE: $ sqlplus / AS SYSDBA SQL> GRANT EXECUTE ON DBMS_ADVANCED_REWRITE TO SCOTT; SQL> GRANT CREATE MATERIALIZED VIEW TO SCOTT; 116
117 Lab 8.2: DBMS_ADVANCED_REWRITE Na sessão do usuário SCOTT, execute o DBMS_ADVANCE_REWRITE: BEGIN SYS.DBMS_ADVANCED_REWRITE.DECLARE_REWRITE_EQUIVALENCE ( NAME => 'PORTILHO_REWRITE', SOURCE_STMT => 'SELECT /*+ INDEX(T_ALIAS,IDX_T) */ COUNT(*) FROM T T_ALIAS WHERE OBJECT_NAME = ''T''', DESTINATION_STMT => 'SELECT COUNT(OBJECT_NAME) FROM T T_ALIAS WHERE OBJECT_NAME = ''T''', VALIDATE => FALSE, REWRITE_MODE => 'TEXT_MATCH'); END; / Execute novamente este SELECT e verifique seu tempo de execução: SQL> SELECT /*+ INDEX(T_ALIAS,IDX_T) */ COUNT(*) FROM T T_ALIAS WHERE OBJECT_NAME = 'T'; Remova o REWRITE, execute novamente o SELECT e verifique seu tempo de execução: SQL> EXEC SYS.DBMS_ADVANCED_REWRITE.DROP_REWRITE_EQUIVALENCE (NAME => 'PORTILHO_REWRITE'); SQL> SELECT /*+ INDEX(T_ALIAS,IDX_T) */ COUNT(*) FROM T T_ALIAS WHERE OBJECT_NAME = 'T'; 117
118 Cenários de Análise O Banco de Dados está lento agora. Encontrar indícios do gargalo na V$SESSION_WAIT. Encontrar o SID na V$SESSION_WAIT. Encontrar o maior Wait Event na V$SESSION_EVENT. Corrigir o maior Wait Event possível. O Banco de Dados estava lento ontem. Encontrar indícios do gargalo na V$SYSTEM_EVENT. Encontrar o maior Wait Event via Statspack / AWR. Corrigir o maior Wait Event possível. Este SQL está lento. Executar com Extended SQL Trace. Encontrar o maior Wait Event via tkprof. Corrigir o maior Wait Event possível. 118
119 Statspack / AWR 119
120 Statspack / AWR Statspack / SPreport $ sqlplus / AS SYSDBA SQL> EXECUTE STATSPACK.SNAP; AWR / ASH Report SQL> EXEC dbms_workload_repository.create_snapshot; 120
121 Hands ON! Statspack / AWR 121
122 Lab 9.1: AWR Tire um SNAPSHOT avulso. $ sqlplus / AS SYSDBA SQL> EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT; Execute a carga no sistema. $ unzip -q swingbench zip $ cd swingbench/bin./charbench Tire outro SNAPSHOT avulso. $ sqlplus / AS SYSDBA SQL> EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT; Tire um relatório AWR comparando os dois SNAPSHOTs. Analise o relatório AWR. 122
123 Resource Plan 123
124 Resource Plan Separação de Recursos por: ORACLE_USER SERVICE_NAME CLIENT_OS_USER CLIENT_PROGRAM CLIENT_MACHINE MODULE_NAME MODULE_NAME_ACTION SERVICE_MODULE SERVICE_MODULE_ACTION Controle dos Recursos: CPU Sessões Ativas Paralelismo I/O (>= 11gR1) 124
125 Resource Plan 125
126 Resource Plan Mudanças de planos: ALTER SYSTEM SET RESOURCE_MANAGER_PLAN = 'PEAKTIME'; ALTER SYSTEM SET RESOURCE_MANAGER_PLAN = 'OFF-PEAK'; Monitoração: DBA_RSRC_CONSUMER_GROUP_PRIVS DBA_RSRC_PLANS V$SESSION V$RSRC_PLAN V$RSRC_CONSUMER_GROUP V$RSRC_SESSION_INFO V$RSRC_PLAN_HISTORY V$RSRC_CONS_GROUP_HISTORY V$RSRCMGRMETRIC V$RSRCMGRMETRIC_HISTORY 126
127 LAB 10 Resource Plan Hands On! 127
128 Lab 10.1 Resource Plan Analise o código do arquivo ResourcePlan.sql. Altere o arquivo para suprir as necessidades de três tipos de uso do banco de dados: Usuário SOE: OLTP, deve ter muita prioridade durante o dia, e pouca durante a noite. Usuario HR: BI, deve ter pouca prioridade durante o dia e muita durante a noite. Usuário SCOTT: AD-HOC, só pode utilizar CPU que nenhum dos usuários acima estiver utilizando. Outros: OTHERS_GROUP, só podem utilizar CPU que nenhum dos usuários acima estiver utilizando. 128
129 Revisão 129
130 Método de Tuning O Banco de Dados está lento agora: Encontrar indícios do gargalo na V$SYSTEM_EVENT. Encontrar indícios do gargalo na V$SESSION_WAIT. Encontrar o(s) SID(s) ofensor na V$SESSION_WAIT. Encontrar o maior Wait Event deste(s) SID(s) na V$SESSION_EVENT. Corrigir o maior Wait Event possível. Se o tempo esta satisfatório, finalizar o processo. O Banco de Dados estava lento ontem: Encontrar indícios do gargalo na V$SYSTEM_EVENT. Encontrar o maior Wait Event via Statspack / AWR. Corrigir o maior Wait Event possível. Se o tempo esta satisfatório, finalizar o processo. Este SQL está lento: Executar o comando SQL com Extended SQL Trace. Encontrar indícios do gargalo durante a execução do SQL Trace. Encontrar o maior Wait Event via tkprof. Corrigir o maior Wait Event possível. Se o tempo esta satisfatório, finalizar o processo. 130
Oracle Performance Diagnostics & Tuning Ricardo Portilho Proni
Oracle Performance Diagnostics & Tuning Ricardo Portilho Proni Mitificação Métodos antigos o o o o o o Experiência Intuição Imprecisão Tempo Sorte Recursos Top Tuning Verificar maior consumidor de CPU
Lendas do Oracle. Ricardo Portilho Proni [email protected]. TITLE Speaker
TITLE Speaker Lendas do Oracle Ricardo Portilho Proni [email protected] Esta obra está licenciada sob a licença Creative Commons Atribuição-SemDerivados 3.0 Brasil. Para ver uma cópia desta
Workshop Oracle Tuning
Workshop Oracle Tuning Ricardo Portilho Proni [email protected] Esta obra está licenciada sob a licença Creative Commons Atribuição-SemDerivados 3.0 Brasil. Para ver uma cópia desta licença,
Análise de Relatórios AWR / Statspack 9iR2 a 12cR1
Análise de Relatórios AWR / Statspack 9iR2 a 12cR1 Ricardo Portilho Proni [email protected] Esta obra está licenciada sob a licença Creative Commons Atribuição-SemDerivados 3.0 Brasil. Para
Oracle Tuning. Este PDF está disponível em Ricardo Portilho Proni Nerv Informática
Oracle Tuning Este PDF está disponível em http://nervinformatica.com.br/t.pdf Ricardo Portilho Proni [email protected] Nerv Informática Quem sou eu Ricardo Portilho Proni - Consultor e Instrutor
Performance Tuning. O que é, por onde começar e o que fazer? Fábio Prado. www.fabioprado.net
Performance Tuning O que é, por onde começar e o que fazer? Fábio Prado Visão geral Nesta apresentação veremos: O que é Tuning? Objetivos do tuning Problemas mais comuns Onde e por que tunar? Atividades
*O RDBMS Oracle é um sistema de gerenciamento de banco de dados relacional.
Arquitetura Oracle e seus componentes Hoje irei explicar de uma forma geral a arquitetura oracle e seus componentes. Algo que todos os DBA s, obrigatoriamente, devem saber de cabo a rabo. Vamos lá, e boa
Banco de Dados Oracle. Faculdade Pernambucana - FAPE
Faculdade Pernambucana - FAPE Visão Geral dos Componentes Principais da Arquitetura Oracle Servidor Oracle É o nome que a Oracle deu ao seu SGBD. Ele consiste de uma Instância e um Banco de Dados Oracle.
Oracle Zero Downtime Migration (com Golden Gate)
Oracle Zero Downtime Migration (com Golden Gate) Ricardo Portilho Proni [email protected] Esta obra está licenciada sob a licença Creative Commons Atribuição-SemDerivados 3.0 Brasil. Para
Crash recovery é similar ao instance recovery, onde o primeiro referencia ambientes de instância exclusiva e o segundo ambientes parallel server.
Recover no Oracle O backup e recuperação de dados em um SGBD é de grande importância para a manutenção dos dados. Dando continuidade a nossos artigos, apresentamos abaixo formas diferentes de se fazer
Aula 2 Arquitetura Oracle
Aula 2 Arquitetura Oracle Instancia Oracle Uma instância Oracle é composta de estruturas de memória e processos. Sua existência é temporária na memória RAM e nas CPUs. Quando você desliga a instância em
Pedro F. Carvalho Analista de Sistemas [email protected]. RMAN: Ambiente de backup
RMAN: Ambiente de backup Olá amigos! Após algumas séries de colunas explicando os conceitos e modos que o RMAN pode trabalhar, iremos aprender a utilizar essa ferramenta para auxiliar os serviços administrativos
Sumário. Capítulo 2 Conceitos Importantes... 32 Tópicos Relevantes... 32 Instance... 33 Base de Dados... 36 Conclusão... 37
7 Sumário Agradecimentos... 6 Sobre o Autor... 6 Prefácio... 13 Capítulo 1 Instalação e Configuração... 15 Instalação em Linux... 15 Instalação e Customização do Red Hat Advanced Server 2.1... 16 Preparativos
Consistem num conjunto de apontadores para instâncias especificas de cada relação.
Mecanismo usado para mais fácil e rapidamente aceder à informação existente numa base de dados. Bases de Dados de elevadas dimensões. Consistem num conjunto de apontadores para instâncias especificas de
Controle de transações em SQL
Transações Controle de transações em SQL Uma transação é implicitamente iniciada quando ocorre uma operação que modifica o banco de dados (INSERT, UPDATE ou DELETE). Uma transação pode terminar normalmente
Guia de procedimentos de backups
Guia de procedimentos de backups Sumário Sobre o guia 3... 4 Procedimentos de backup do banco de dados Oracle... 5 Backup lógico... 6 Backup físico... 7 Envio de backup... para fita 9 2 3 Sobre o guia
8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)
8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) Nos itens anteriores vimos transações do tipo explícitas, ou seja, aquelas que iniciam com BEGIN TRANSACTION. As outras
SQL Introdução ao Oracle
SQL Introdução ao Oracle Estagiários: Daniel Feitosa e Jaqueline J. Brito Sumário Modelo de armazenamento de dados Modelo físico Modelo lógico Utilizando o SQL Developer Consulta de Sintaxe Sumário Modelo
Quando se seleciona os modos OS ou XML, arquivos são criados com os registros de auditoria, eles se localizam parâmetro audit_file_dest.
Auditoria é a habilidade do banco de dados Oracle poder gerar logs de auditoria (XML, tabelas, arquivos de SO, ) em atividades suspeitas do usuário, como por exemplo: monitorar o que um determinado usuário
PROCEDIMENTOS PARA ATUALIZAÇÃO DE VERSÃO DO APLICATIVO
PROCEDIMENTOS PARA ATUALIZAÇÃO DE VERSÃO DO APLICATIVO MASTERSAFDW VERSÃO 5-25/04/12 PÁGINA 1 Índice Informações Importantes... 3 Atualizando o aplicativo... 4 Procedimentos para atualização da base de
Bases de Dados. Lab 1: Introdução ao ambiente
Departamento de Engenharia Informática 2010/2011 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo
UNINOVE Tec. Adm. e Des. de Sistemas. Administracão de Banco de Dados. ORACLE Backup / Recovery AULA 11
UNINOVE Tec. Adm. e Des. de Sistemas Administracão de Banco de Dados ORACLE Backup / Recovery AULA 11 Prof. MsC. Eng. Marcelo Bianchi AULA 09 A ARQUITETURA DO ORACLE O conhecimento da arquitetura Oracle
Prof. Carlos Majer Aplicações Corporativas UNICID
Este material pertence a Carlos A. Majer, Professor da Unidade Curricular: Aplicações Corporativas da Universidade Cidade de São Paulo UNICID Licença de Uso Este trabalho está licenciado sob uma Licença
Banco de Dados. Prof. Antonio
Banco de Dados Prof. Antonio SQL - Structured Query Language O que é SQL? A linguagem SQL (Structure query Language - Linguagem de Consulta Estruturada) é a linguagem padrão ANSI (American National Standards
Administração de Banco de Dados
Administração de Banco de Dados Adriano J. Holanda http://holanda.xyz 28/8/2015 Índices Para os testes com os índices criaremos uma tabela chamada tteste com o comando teste=> CREATE TABLE tteste (id int4);
O servidor de banco de dados ORACLE corporativo da empresa deve possuir a seguinte especificação mínima:
ICOL Instruções para Instalação - ORACLE 1. Introdução Esse documento contém as instruções para instalação da aplicação ICOL na estrutura de máquinas da empresa cliente. No caso, estão descritos os procedimentos
www.en-sof.com.br SOLUÇÕES PARA CONTINUIDADE DO NEGÓCIO
SOLUÇÕES PARA CONTINUIDADE DO NEGÓCIO 1 Soluções Oracle Voltadas à Continuidade dos Negócios Luciano Inácio de Melo Oracle Database Administrator Certified Oracle Instructor Bacharel em Ciências da Computação
Oracle Performance Diagnostics & Tuning 12cR2 Em Oracle Enterprise Linux 7.3 Modo Texto Inclui CDB Architecture
Oracle Performance Diagnostics & Tuning 12cR2 Em Oracle Enterprise Linux 7.3 Modo Texto Inclui CDB Architecture Ricardo Portilho Proni [email protected] Esta obra está licenciada sob a licença
MySQL para DBAs Oracle
MySQL para DBAs Oracle Ricardo Portilho Proni [email protected] Esta obra está licenciada sob a licença Creative Commons Atribuição-SemDerivados 3.0 Brasil. Para ver uma cópia desta licença,
Sistemas Operacionais: Sistema de Arquivos
Sistemas Operacionais: Sistema de Arquivos Sistema de Arquivos Arquivos Espaço contíguo de armazenamento Armazenado em dispositivo secundário Estrutura Nenhuma: seqüência de bytes Registros, documentos,
Tecnologia de armazenamento Intel (Intel RST) RAID 0, 1, 5, 10, Matrix RAID, RAID -Pronto
Tecnologia de armazenamento Intel (Intel RST) RAID 0, 1, 5, 10, Matrix RAID, RAID -Pronto RAID 0 (striping) RAID 0 utiliza os recursos de leitura/gravação duas ou mais unidades de disco trabalhando em
As principais estruturas são a SGA (System Global Area ou Área Global do Sistema) e a PGA (Program Global Area ou Área Global de Programa).
ARQUITETURA ORACLE O conhecimento da arquitetura interna do ORACLE é de extrema importância para a compreensão das técnicas de otimização do produto. Basicamente, os seus mecanismos de execução são as
Comparativo de desempenho do Pervasive PSQL v11
Comparativo de desempenho do Pervasive PSQL v11 Um artigo Pervasive PSQL Setembro de 2010 Conteúdo Resumo executivo... 3 O impacto das novas arquiteturas de hardware nos aplicativos... 3 O projeto do Pervasive
BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho [email protected] www.diemesleno.com.br
BANCO DE DADOS info 3º ano Prof. Diemesleno Souza Carvalho [email protected] www.diemesleno.com.br Na última aula estudamos Unidade 4 - Projeto Lógico Normalização; Dicionário de Dados. Arquitetura
Transações Seguras em Bancos de Dados (MySQL)
Transações Seguras em Bancos de Dados (MySQL) Índice Entendendo os storage engines do MySQL 5 1 As ferramentas 1 Mais algumas coisas que você deve saber 1 Com a mão na massa 2 Mais ferramentas Usando o
Gerenciamento de memória virtual no Kernel Linux conceitos básicos
Gerenciamento de memória virtual no Kernel Linux conceitos básicos João Eriberto Mota Filho Rio de Janeiro, Eriberto RJ, 03 dez. dez. 2011 2011 Sumário Modelo von Neumann Causas de esgotamento da memória
Everson Santos Araujo
Administrando Servidores Linux Everson Santos Araujo Esta apresentação O que esperar: Dicas para uma boa administração de O que não esperar: Como fazer passo a passo; sistemas; Monitoramento; Everson Santos
CONTENÇÕES NO SGBD MICROSOFT SQL SERVER 2008 R2
CONTENÇÕES NO SGBD MICROSOFT SQL SERVER 2008 R2 ROMULO RUBENS CUNHA JUNIOR 1 IREMAR NUNES DE LIMA 2 Resumo: Este artigo aborda os tipos de contenções que podem ocorrer no Sistema Gerenciador de Banco de
SGBD. Funções Básicas de um SGBD
Definição Sistema cujo objetivo principal é gerenciar o acesso e a correta manutenção dos dados armazenados em um banco dados. Funções básicas Métodos acesso Integrida Semântica Segurança Concorrência
FAPLAN - Faculdade Anhanguera Passo Fundo Gestão da Tecnologia da Informação Banco de Dados II Prof. Eder Pazinatto Stored Procedures Procedimento armazenados dentro do banco de dados Um Stored Procedure
Oracle Advanced Compression x External Tables (Armazenamento de dados históricos)
Oracle Advanced Compression x External Tables (Armazenamento de dados históricos) Agenda Sobre Rodrigo Mufalani Clico de dados Visão Geral Avanced Compression Visão Geral External Tables Performance Disponibilidade
Prof.: Clayton Maciel Costa [email protected]
Programação com acesso a BD Prof.: Clayton Maciel Costa [email protected] 1 Modelos de Dados, Esquemas e Instâncias 2 Modelos de Dados, Esquemas e Instâncias Modelo de dados: Conjunto de conceitos
SQL Structured Query Language
Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa
Advanced IT S/A. EM10g Grid Control. Introdução. Introdução. Agenda. Como alcança estes objetivos Grid Control Home Page Pode gerenciar:
Agenda Advanced IT S/A EM10g Grid Control Denise Cunha Advanced IT S/A - DBA Gerenciando Deployments (distribuições) Estendendo o EM Sistema de Jobs Start e Stop do EM Objetivos Extrair informações críticas
Cap 15 Managing Database Performance. Pedro F. Carvalho DBA Oracle [email protected] www.pedrofcarvalho.com.br
Cap 15 Managing Database Performance Objectives After completing this lesson, you should be able to: Monitor the performance of sessions and services Use the SQL Tuning Advisor to: Identify SQL statements
HOW TO. Instalação do Firewall 6.1 Software
Introdução HOW TO Página: 1 de 14 Para fazer a migração/instalação do 6.1 Software, é necessária a instalação do Sistema Operacional Linux Fedora Core 8. Explicaremos passo a passo como formatar a máquina,
Bases de Dados. O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo ilustrada na figura 1.
Departamento de Engenharia Informática 2008/2009 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo
ARQUIVOS DE CONFIGURAÇAO ZIM 8.50
ZIM TECHNOLOGIES DO BRASIL ARQUIVOS DE CONFIGURAÇAO ZIM 8.50 Próx Antes de Iniciar Este documento detalha os arquivos de configuração da versão Zim 8.50 para Unix/WIndows. Você também deve consultar as
Novidades Oracle 11g. Rio Grande Energia - RGE
Novidades Oracle 11g Daniel Güths Rio Grande Energia - RGE 1 Agenda Oracle Database 11g new features SQL e PL/SQL new features Performance e gerenciamento de recursos Gerenciamento de mudanças Gerenciamento
Migrando para OpenEdge 10. Regis Martins Ezipato Sr Solution Engineer
Migrando para OpenEdge 10 Regis Martins Ezipato Sr Solution Engineer Façam as perguntas durante a apresentação 2 Visão Geral Versão 7.2A 8.2A 8.3A 9.0A 9.1A 10.0A 10.1A Quando Passado distante Passado
Noções de. Microsoft SQL Server. Microsoft SQL Server
Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados
Introdução à Banco de Dados. Nathalia Sautchuk Patrício
Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem
Prof. Luiz Fernando. Unidade III ADMINISTRAÇÃO DE
Prof. Luiz Fernando Unidade III ADMINISTRAÇÃO DE BANCOS DE DADOS Administração de SGBDs De todo o tipo de pessoal envolvido com desenvolvimento, manutenção, e utilização de bancos de dados há dois tipo
Bases de Dados 1º semestre
DepartamentodeEngenhariaInformática 2008/2009 BasesdeDados1ºsemestre Lab1:Introduçãoaoambiente O ficheiro create bank.sql contém um conjunto de instruções SQL para criar a base de dadosdeexemploilustradanafigura1.
CONCORRÊNCIA. 1. Introdução. Recursos exclusivos. Não necessita controle. Abundância de recursos compartilhados. Controle necessário mas mínimo
CONCORRÊNCIA 1. Introdução Recursos exclusivos Não necessita controle Abundância de recursos compartilhados Controle necessário mas mínimo Harmonia, provavelmente não haverá conflito Recursos disputados
Real Application Cluster (RAC)
Real Application Cluster (RAC) Anderson Haertel Rodrigues OCE RAC 10g [email protected] AdvancedIT S/A RAC? Oracle RAC é um banco de dados em cluster. Como assim? São vários servidores
Treinamento. DBA Oracle 11g. Duração: 120 horas
Treinamento DBA Oracle 11g Duração: 120 horas Neste curso no primeiro módulo (Introdução ao Oracle 11g SQL e PL_SQL) é oferecido um curso introdutório à tecnologia do banco de dados Oracle 11g. Também
Download. Instalaça o. Geral
Download Não estou a conseguir fazer o download da versão demo do produto. Há outra forma de o obter? Sim, com certeza. Por favor, envie uma solicitação para algum dos meios de suporte disponíveis no nosso
Carga Horária 40 horas. Requisitos Servidor Oracle 10G Ferramenta para interação com o banco de dados
Oracle 10g - Workshop de Administração I Objetivos do Curso Este curso foi projetado para oferecer ao participante uma base sólida sobre tarefas administrativas fundamentais. Neste curso, você aprenderá
Alta concorrência com PostgreSQL
Alta concorrência com PostgreSQL ou Fazendo uma manada de elefantes passar debaixo da porta Fábio Telles Rodriguez Timbira - A empresa brasileira de PostgreSQL 09 de novembro de 2012 Agenda Sobre o que
Linguagem de Consulta Estruturada SQL- DML
Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation
MANUAL INSTALAÇÃO WEB SERVICE
MANUAL INSTALAÇÃO WEB SERVICE Recebimento de dados pelo Hospital Versão 1.1 2/9/2014 Contato [email protected] Índice Introdução... 2 Requerimentos para instalação do Web Service... 2 Instalação...
INICIAL. Guia de Criação da Base Produção Paralela IMPORTANTE: MESMO QUE SEJAM EXECUTADOS
Guia de Criação da Base Produção Paralela INICIAL SEQUENCES, tabelas de BMF e CADASTRO. Atualização de Bancos de Dados. Validações necessárias. IMPORTANTE: MESMO QUE SEJAM EXECUTADOS OS PROCEDIMENTOS DA
PostgreSQL Performance
PostgreSQL Performance André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) PostgreSQL Performance February 24, 2012 1 / 45 Sumário 1 Armazenamento 2 Índices
DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano
DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS Fábio Roberto Octaviano Controlando Acesso dos Usuários Após o término do Capítulo: Diferenciar privilégios de sistema e privilégios de objetos.
Guia de Referência Rápida Administração de Bancos de Dados Oracle - Abstratos Tecnologia
Objetivo O objetivo deste guia é tão somente o de servir como referência, um lembrete, da sintaxe dos comandos de administração de bancos de dados Oracle mais usuais. Sendo assim ele não tem o objetivo
EXEMPLOS DE COMANDOS NO SQL SERVER
EXEMPLOS DE COMANDOS NO SQL SERVER Gerenciando Tabelas: DDL - DATA DEFINITION LANGUAG Criando uma tabela: CREATE TABLE CLIENTES ID VARCHAR4 NOT NULL, NOME VARCHAR30 NOT NULL, PAGAMENTO DECIMAL4,2 NOT NULL;
Sistemas Operacionais
Sistemas Operacionais Aula 5 Estrutura de Sistemas de Computação Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso
Universidade Federal de Mato Grosso-UFMT Sistemas de Informação Laboratório de Banco de Dados Prof. Clóvis Júnior. Áreas de Trabalho (Tablespace)
Universidade Federal de Mato Grosso-UFMT Sistemas de Informação Laboratório de Banco de Dados Prof. Clóvis Júnior Áreas de Trabalho (Tablespace) Estruturado Bancode Dados Estruturas de Memória Instância
ESTRATÉGIAS DE OTIMIZAÇÃO NO SGBD MICROSOFT SQL SERVER 2008 R2 IREMAR NUNES DE LIMA 2
ESTRATÉGIAS DE OTIMIZAÇÃO NO SGBD MICROSOFT SQL SERVER 2008 R2 RAMON FELIPE MOREIRA DIAS DE SOUZA 1 IREMAR NUNES DE LIMA 2 Resumo: Este artigo identifica e discute diversas estratégias que podem ser utilizadas
Sistemas Distribuídos RPC
Sistemas Distribuídos RPC Disciplina: Sistemas Distribuídos Prof.: Edmar Roberto Santana de Rezende Faculdade de Engenharia de Computação Centro de Ciências Exatas, Ambientais e de Tecnologias Pontifícia
Tópicos. Atualizações e segurança do sistema. Manutenção Preventiva e Corretiva de Software (utilizando o MS Windows XP)
teste 1 Manutenção Preventiva e Corretiva de Software (utilizando o MS Windows XP) Rafael Fernando Diorio www.diorio.com.br Tópicos - Atualizações e segurança do sistema - Gerenciamento do computador -
<Insert Picture Here> Comparativo entre DBSE e DBEE
Comparativo entre DBSE e DBEE Oracle Database Oracle Database Standard Edition Disponível para ambientes com até 4 processadores, possui features limitadas e não oferece possibilidade
Tuning para Desenvolvedores DB2
Tuning para Desenvolvedores DB2 Perallis IT Innovation Soluções em Armazenamento de dados www.perallis.com [email protected] +55 19 3203-1002 SOBRE ESTE CURSO PÚBLICO-ALVO O curso Tuning para Desenvolvedores
Servidores SQL - SQL SERVER 7.0 e Oracle
Servidores SQL - SQL SERVER 7.0 e Oracle SQL SERVER O SQL Server é um sistema de gerenciamento de banco de dados cliente/servidor de alto desempenho com alta integração com o Windows NT. Suas características
Fundamentos de Banco de Dados
Fundamentos de Banco de Dados SISTEMAS BASEADOS NO PROCESSAMENTO DE ARQUIVOS Sistema A Funcionário Pagamento Cargo Sistema B Funcionário Projeto SISTEMAS GERENCIADORES DE BANCO DE DADOS (SGBD) Sistema
Oracle Database 11g: Novos Recursos para Administradores
Oracle Database 11g: Novos Recursos para Administradores Course O11NFA 5 Day(s) 30:00 Hours Introduction Este curso de cinco dias oferece a você a oportunidade de conhecer e fazer exercícios com os novos
Dicas para uso de VLDB (very large databases)
Dicas para uso de VLDB (very large databases) Slide 1 Considerações e Marcas Registradas As informações contidas nesta apresentação não foram submetidas à nenhuma revisão formal e é distribuída sem nenhuma
TRABALHO COM GRANDES MONTAGENS
Texto Técnico 005/2013 TRABALHO COM GRANDES MONTAGENS Parte 05 0 Vamos finalizar o tema Trabalho com Grandes Montagens apresentando os melhores recursos e configurações de hardware para otimizar a abertura
BI: Um estudo de Oracle MÉLODY BALLOUARD (MAMB)
BI: Um estudo de Oracle MÉLODY BALLOUARD (MAMB) Roteiro Introdução Motivação Objetivos Historico Conceitos Arquitetura Estado da arte Exemplos Referências Introdução Quantidade infinita de dados Ferramentas
Sistema de Instalação e Criação da Estrutura do Banco de Dados MANUAL DO INSTALADOR. Julho/2007. Ministério da saúde
Sistema de Instalação e Criação da Estrutura do Banco de Dados MANUAL DO INSTALADOR Julho/2007 Ministério da saúde SUMÁRIO Módulo 1. Instalação... 4 Introdução... 4 Configurações de equipamentos para instalação
Fundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Professor: João Fábio de Oliveira [email protected] (41) 9911-3030 Objetivo: Apresentar o que são os Sistemas Operacionais, seu funcionamento, o que eles fazem,
PROCEDIMENTOS ARMAZENADOS (Stored Procedures)
PROCEDIMENTOS ARMAZENADOS (Stored Procedures) 1. Introdução Stored Procedure é um conjunto de comandos, ao qual é atribuído um nome. Este conjunto fica armazenado no Banco de Dados e pode ser chamado a
Exercícios de revisão V2. FAT: 300 GB / 2KB = 150MB X 8 bytes (64 bits / 8) = 1.2GB
Exercícios de revisão V2 1 Uma empresa que possui partições FAT em seus servidores, estava impressionada com um processo em específico na memória, onde o mesmo ocupava um espaço grande. Este servidor dedicado
Documentação Symom. Agente de Monitoração na Plataforma Windows
Documentação Symom de Monitoração na Plataforma Windows Windows Linux Windows Linux Plataforma Windows Instalação A instalação do de Monitoração do Symom para Windows é feita através do executável setup.exe
BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com
- Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando
LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados
LINGUAGEM SQL Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características
Introdução aos Sistemas Operativos
Introdução aos Sistemas Operativos Computadores e Redes de Comunicação Mestrado em Gestão de Informação, FEUP 06/07 Sérgio Sobral Nunes mail: [email protected] web: www.fe.up.pt/~ssn Sumário Definição
2 de maio de 2014. Remote Scan
2 de maio de 2014 Remote Scan 2014 Electronics For Imaging. As informações nesta publicação estão cobertas pelos termos dos Avisos de caráter legal deste produto. Conteúdo 3 Conteúdo...5 Acesso ao...5
Profº Aldo Rocha. Banco de Dados
Profº Aldo Rocha Banco de Dados HOJE! CREATE TABLE com uma Chave primária Primeiramente façam um SELECT na tabela pessoa. Percebam que não há NENHUMA CHAVE PRIMÁRIA. utilizem o comando SHOW CREATE TABLE
Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet:
Comunicação em uma rede Ethernet A comunicação em uma rede local comutada ocorre de três formas: unicast, broadcast e multicast: -Unicast: Comunicação na qual um quadro é enviado de um host e endereçado
PROGRAMA DE PÓS-GRADUAÇÃO POSEAD. Curso Banco de Dados. Resenha Crítica: Backup e Recovery Aluno: Wilker Dias Maia
PROGRAMA DE PÓS-GRADUAÇÃO POSEAD Curso Banco de Dados Resenha Crítica: Backup e Recovery Aluno: Wilker Dias Maia Brasília 2012 SUMÁRIO 1- INTRODUÇÃO... 3 2- DESCRIÇÃO DO ASSUNTO... 4 2.1- Estrutura fisica
