Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Wait Event:redimensionamento do descritor assíncrono


Em meu banco de dados de produção atualizado recentemente, estou vendo várias instruções SQL que agora estão enfrentando altas esperas no evento “redimensionamento do descritor assíncrono”. Recentemente, atualizei de 11.1.0.7 para 11.2.0.2 e as instruções SQL que nunca esperaram por esse evento agora estão sendo capturadas.

O Oracle 11.2 mudou ligeiramente a forma como o banco de dados e o kernel do sistema operacional executavam chamadas de E/S assíncronas. O que está acontecendo é que existem vários descritores de E/S assíncronos para poder lidar com as chamadas de E/S assíncronas. Quando o número de chamadas de E/S assíncronas aumenta, o número de descritores também aumenta. Quando o número de chamadas de E/S assíncronas diminui, o número de descritores diminui de maneira semelhante.

Antes que o Oracle possa aumentar o número de descritores, ele deve aguardar que todos os processos que estão executando E/S assíncrona no momento concluam suas chamadas de E/S. Esta ação terrível realmente mata a parte “assíncrona” do I/O! Depois que todos os processos tiverem concluído suas chamadas de E/S ansych, o Oracle poderá modificar os descritores para cima ou para baixo, dependendo da carga de trabalho.

Se o seu processo acabou de concluir sua E/S assíncrona, antes que ele possa fazer outra chamada de E/S assíncrona, ele deve esperar que o Oracle modifique o número de descritores. Como tal, você está aguardando o evento de espera “redimensionamento do descritor assíncrono”.

Este parece ser o Bug 9829397 e você pode baixar um patch para ele do Metalink. Esse problema foi corrigido em 11.2.0.3, portanto, só aparece em 11.2.0.1 e 11.2.0.2. Uma solução alternativa é desabilitar a E/S assíncrona, mas para mim essa solução alternativa é altamente indesejável. Também é possível reduzir as ocorrências desse evento de espera reduzindo sua E/S direta e ajustando suas instruções SQL.