Pular para o conteúdo principal

Mostra os TOP latchs

Latch é uma proteção dos buffers de memória semelhante aos locks das linhas das tabelas. Existe numerosos tipos de Latches para todos os diferentes tipos de buffer de área de memória.

Não é possível fazer tunning em Latches. Problemas com Latches são indicações de que outros problemas estão ocorrendo e pode auxiliar-nos à nos concentrar no verdadeiro problema deperformance que pode estar acontecendo.

Latches missed, spins e sleeps

O que é um Latch missed? Quando um latch é requisitado e a sessão de um buffer requisitado é fechado ou travado por outro processo, então, um latch livre é gerado. Entretanto, a segunda requisição para um latch, que o qual já foi retido por outro processo, irá esperar o requerido latch tornar-se livre para uso. O lock da linha de uma tabela simplesmente espera a liberação da linha tentando constantemente um lock na mesma. Ao contrário, um latch missed irá gerar um dos dois tipos de ação:

1) Coloca o latch em immediate mode que fará com que o processo fique requisitando um latch para tomar uma ação alternativa;

2) Coloca o latch requisitado em willing-to-wait mode e isso faz com que ele fique tentando repetidamente e spin (gira).

Quando o latch gira um determinado número de vezes, ele passa à sleep (dormir ) por um período de tempo. Spinning latches pode consumir uma grande quantidade de tempo de CPU. Quando ocorre um latch spin, ele repetidamente requisita um latch e isso pode afetar drasticamente se muitos latches spins estão ocorrendo ao mesmo tempo. Mas vamos nos aprofundar um pouco mais nesse tópico lá na frente pois precisamos de algumas outras informações.

Abaixo a query pra mostrar os TOP LATCHS:

SET LINESIZE 200

SELECT l.latch#,
l.name,
l.gets,
l.misses,
l.sleeps,
l.immediate_gets,
l.immediate_misses,
l.spin_gets
FROM v$latch l
WHERE l.misses > 0
ORDER BY l.misses DESC;

Comentários

Postagens mais visitadas deste blog

Assign Backup Policy for Boot and Block Volumes - OCI

To get Availability Domain oci iam availability-domain list  #!/bin/bash OCI_AD="hQsi:SA-SAOPAULO-1-AD-1" OCI_COMPARTMENT="ocid1.compartment.oc1..aaaaaaaavgyjpoffz5qliieawamjaksfb6juxejurtduclqjkvv66ookcxja" #Get Silver policy ocid funct_get_policy(){ OCI_POL_OCID=$(oci bv volume-backup-policy list | jq -r '.data[] | select(."display-name"|contains("silver"))' | jq -r '.id') } funct_boot_vol (){ #Create a file with all boot volume ocid oci bv boot-volume list --availability-domain ${OCI_AD} -c  ${OCI_COMPARTMENT} | jq -r '.data[].id' > boot-vol.txt while IFS="" read -r p || [ -n "$p" ] do   printf 'Seeting backup policy for %s\n' "$p"   oci bv volume-backup-policy-assignment create  --asset-id  $p  --policy-id ${OCI_POL_OCID} done < boot-vol.txt } funct_block_vol (){ #Create a file with all block volume ocid oci bv volume list  -c ${OCI_COMPARTMENT} | jq -r '.data[].id' ...

OHS 12c noprompt password when stop/start component

cd $OHS_DOMAIN/bin $ ./stopComponent.sh ohs1 Stopping System Component ohs1 ... Initializing WebLogic Scripting Tool (WLST) ... Welcome to WebLogic Server Administration Scripting Shell Type help() for help on available commands Reading domain from /u01/oracle/domains/ohs_domain Please enter your password : password Connecting to Node Manager ... Successfully Connected to Node Manager. Killing server ohs1 ... Successfully killed server ohs1 Successfully disconnected from Node Manager. Exiting WebLogic Scripting Tool. Done $ OHS_HOME/oracle_common/common/bin $ wlst.sh readDomain('/u01/oracle/domains/ohs_domain') ohs_domain>cd('/SecurityConfiguration/ohs_domain') set('NodeManagerUsername','weblogic') set('NodeManagerPasswordEncrypted','password') updateDomain() closeDomain() exit() $ ./startComponent.sh ohs1  Starting system Component ohs1 ... Initializing WebLogic Scripting Tool (WLST) ... Welco...

Configurar Tamanho de UNDO e tempo de RETENÇÃO (UNDO_RETENTION)

-- Tamanho Undo Atual SELECT SUM(a.bytes) "UNDO_SIZE" FROM v$datafile a, v$tablespace b, dba_tablespaces c WHERE c.contents = 'UNDO' AND c.status = 'ONLINE' AND b.name = c.tablespace_name AND a.ts# = b.ts#; -- Blocos de UNDO por Seg. SELECT MAX(undoblks/((end_time-begin_time)*3600*24)) "UNDO_BLOCK_PER_SEC" FROM v$undostat; --Tamanho do Bloco SELECT TO_NUMBER(value) "DB_BLOCK_SIZE [KByte]" FROM v$parameter WHERE name = 'db_block_size'; -- Select calcula UNDO RETENTION SELECT d.undo_size/(1024*1024) "ACTUAL UNDO SIZE [MByte]", SUBSTR(e.value,1,25) "UNDO RETENTION [Sec]", ROUND((d.undo_size / (to_number(f.value) * g.undo_block_per_sec))) "OPTIMAL UNDO RETENTION [Sec]" FROM ( SELECT SUM(a.bytes) undo_size FROM v$datafile a, v$tablespace b, dba_tablespaces c WHERE c.contents = 'UNDO' ...