As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Digitalização inteligente
O Exadata usa seu subsistema de armazenamento com reconhecimento de banco de dados para descarregar o processamento dos servidores de banco de dados movendo parte do processamento de SQL para os servidores de células de armazenamento. O Exadata Smart Scan pode reduzir o volume de dados retornados aos servidores de banco de dados por meio da filtragem descarregada e da projeção de colunas. Esse recurso resolve dois dos principais desafios ao lidar com grandes conjuntos de dados: a transferência de dados enormes e desnecessários da camada de armazenamento para os servidores de banco de dados e o tempo e os recursos gastos na filtragem dos dados necessários. O Smart Scan é um recurso importante do Cell Offload Processing, que também inclui inicialização de arquivos de dados, descompressão de HCC e outras funcionalidades.
O fluxo de dados do Smart Scan não pode ser armazenado em buffer no pool de buffers da área global do sistema (SGA). O Smart Scan requer uma leitura direta do caminho, que é armazenada em buffer na área global do programa (PGA). Uma instrução SQL deve atender a alguns requisitos para funcionar com o Smart Scan:
-
O segmento consultado pela instrução SQL deve ser armazenado em um sistema Exadata em que o
cell.smart_scan_capable
atributo de configuração do grupo de discos ASM esteja definido como.TRUE
-
Uma varredura completa da tabela ou uma operação de varredura completa rápida do índice deve ocorrer.
-
O segmento envolvido na instrução SQL deve ser grande o suficiente para passar por uma operação de leitura direta do caminho
.
Para avaliar a eficiência do Smart Scan em um sistema Exadata, você deve considerar as seguintes estatísticas principais do banco de dados:
-
physical read total bytes
— A quantidade total de bytes de E/S para operações de leitura emitidas pelo banco de dados, independentemente de a operação ter sido transferida para os servidores de armazenamento. Isso indica o total de operações de leitura, em bytes, emitidas pelos servidores de banco de dados para as células de armazenamento do Exadata. Esse valor reflete a capacidade de E/S de leitura que a plataforma de destino na AWS precisa atender quando você migra a carga de trabalho para a AWS sem ajustá-la. -
cell physical IO bytes eligible for predicate offload
— A quantidade de operações de leitura, em bytes, que são inseridas no Smart Scan e são elegíveis para o descarregamento de predicados. -
cell physical IO interconnect bytes
— O número de bytes de E/S que são trocados pela interconexão entre o servidor do banco de dados e as células de armazenamento. Isso abrange todos os tipos de tráfego de E/S entre o banco de dados e os nós de armazenamento, incluindo bytes retornados pelo Smart Scan, bytes retornados por consultas que não são elegíveis para o Smart Scan e operações de gravação. -
cell physical IO interconnect bytes returned by smart scan
— Bytes de E/S retornados pela célula para operações do Smart Scan. Essa é a saída do Smart Scan. -
cell physical IO bytes eligible for predicate offload
— Você pode comparar esse valor com o total de bytes de leitura física para entender quantas operações totais de leitura estão sujeitas ao Smart Scan. A proporção decell physical IO bytes eligible for predicate offload
(entrada para Smart Scan) ecell physical IO interconnect bytes returned by smart scan
(saída do Smart Scan) indica a eficiência do Smart Scan. Para um sistema Exadata que inclui principalmente operações de leitura, a proporção decell physical IO interconnect bytes returned by smart scan
paracell physical IO interconnect bytes
pode indicar a dependência do Smart Scan. No entanto, isso nem sempre é o caso, poiscell physical IO interconnect bytes
também inclui o dobro do número de operações de gravação (com espelhamento ASM) entre os servidores de computação e armazenamento.
Você pode obter essas estatísticas de E/S do bancoV$SYSSTAT
V$ACTIVE_SESSION_HISTORY
V$SQL
No exemplo a seguir, de um relatório AWR coletado de um sistema Exadata, o banco de dados solicitou 5,7 Gbps de taxa de transferência de leitura, dos quais 5,4 Gbps eram elegíveis para o Smart Scan. A saída do Smart Scan contribuiu para 55 MBps do total de 395 MBps do tráfego total de interconexão entre o banco de dados e os nós de computação. Essas estatísticas apontam para um sistema Exadata que tem uma alta dependência do Smart Scan.
Você pode avaliar a eficiência e as dependências do Smart Scan no nível do SQL usando as seguintes colunas da V$SQL
exibição.
-
IO_CELL_OFFLOAD_ELIGIBLE_BYTES
— Número de bytes de I/O que podem ser filtrados pelo sistema de armazenamento Exadata. -
IO_INTERCONNECT_BYTES
— Número de bytes de I/O trocados entre o banco de dados Oracle e o sistema de armazenamento. -
PHYSICAL_READ_BYTES
— Número de bytes lidos dos discos pelo SQL monitorado.
A saída de consulta a seguir mostra os benefícios do Smart Scan para uma consulta SQL que tem o ID SQLxn2fg7abff2d
.
select ROUND(physical_read_bytes/1048576) phyrd_mb , ROUND(io_cell_offload_eligible_bytes/1048576) elig_mb , ROUND(io_interconnect_bytes/1048576) ret_mb , (1-(io_interconnect_bytes/NULLIF(physical_read_bytes,0)))*100 "SAVING%" from v$sql where sql_id = 'xn2fg7abff2d' and child_number = 1; PHYRD_MB ELIG_MB RET_MB SAVING% ---------- ---------- ---------- ---------- 10815 10815 3328 69.2%
Para testar a influência do Smart Scan na carga de trabalho, você pode desativar o recurso definindo o cell_offload_processing
parâmetro FALSE
no nível do sistema, da sessão ou da consulta. Por exemplo, para desativar o processamento de descarga de células do Exadata Storage Server para uma instrução SQL, você pode usar:
select /*+ OPT_PARAM('cell_offload_processing' 'false') */ max(ORDER_DATE) from SALES;
Para desativar o processamento de descarga de células do Exadata Storage Server para uma sessão de banco de dados, você pode definir o seguinte parâmetro de inicialização do banco de dados Oracle:
alter session set CELL_OFFLOAD_PROCESSING=FALSE;
Para desativar o processamento de descarga de células do Exadata Storage Server para todo o banco de dados do Exadata, você pode definir:
alter system set CELL_OFFLOAD_PROCESSING=FALSE;
Migrando para AWS
Quando você migra inicialmente as cargas de trabalho para o Exadata, várias mudanças de design são implementadas como uma prática comum para favorecer o Smart Scan, incluindo a eliminação de índices de esquema para favorecer a digitalização completa da tabela. Ao migrar essas cargas de trabalho para plataformas que não são do Exadata, você precisa reverter essas alterações de design.
Ao migrar suas cargas de trabalho do Exadata para AWS, considere estas ações de ajuste para otimizar o desempenho das consultas que usam o Smart Scan:
-
Use instâncias otimizadas para memória e configure uma SGA maior para aumentar a taxa de acertos do buffer.
-
Identifique consultas executadas com planos de execução abaixo do ideal e ajuste-as para reduzir seu espaço de I/O.
-
Ajuste os parâmetros do otimizador, como
db_file_multiblock_read_count
e,optimizer_index_cost_adj
para evitar varreduras completas da tabela. -
Escolha uma opção de compressão apropriada.
-
Crie índices de esquema adicionais conforme necessário.