Shanghai Tengke Education Dameng banco de dados treinamento compartilhamento de produtos secos Dameng SQL otimização-artigos básicos (3)

Nas duas edições anteriores de compartilhamento, apresentamos os operadores SQL usados ​​em consultas de tabela única e de várias tabelas. Desta vez, falaremos sobre os operadores usados ​​na filtragem e classificação de agrupamento.

 

Condição do filtro: SLCT

Este tipo de operador é relativamente simples e filtra o conjunto de resultados. Você precisa prestar atenção às informações de descrição do operador. A partir das informações de descrição, podemos ver quais condições de filtro estão disponíveis para operações de nível inferior. Essas condições costumam ser a fonte de otimização. .

 

 

O que precisa de atenção é a parte da descrição de SLCT (exp_cast (T2.ID)> 5 AND exp11 <= 0), onde o conteúdo entre colchetes marca ID> 5 como EXP_CAST (T2.ID)> 5, ID NÃO COMO '% c % 'está marcado como EXP11 <= 0. Dentre eles, a informação fornecida por EXP_CAST (T2.ID)> 5 nos informa que comparar o ID da coluna com o número 5 é converter o tipo de coluna. Em outras palavras, mesmo que haja um índice na coluna ID, a varredura do intervalo pode não ser possível , Como o requisito de entrada da varredura do intervalo do índice é o mesmo que o tipo na coluna do índice, vamos verificar

 

Na verdade, na presença de um índice (crie indexi_index3 em t2 (id)), a consulta equivalente de coluna única não usa o índice para consultar. Este é apenas um princípio geral. Ao comparar diferentes tipos de dados, um será selecionado primeiro Compare o tipo e determine o método de comparação. Por exemplo, neste exemplo, comparando ID (VARCHAR) = 5 (INT), o servidor preferencialmente escolhe converter o tipo em INT para comparação, então a coluna ID precisa ser convertida por tipo, de modo que o índice não pode ser usado (não há índice para armazenar os dados convertidos ) Neste caso, precisamos converter o objeto de comparação da coluna do índice para o mesmo formato da coluna do índice

 

 

 

Outra condição, ID NOT LIKE '% c%', é convertida em EXP11 <= 0, que na verdade converte NOT LIKE em INSTR (ID, 'c') <= 0, o princípio não é repetido aqui, esperamos O que fez é

Para cada um dos itens de descrição do SLCT, as condições correspondentes podem ser encontradas no SQL original, e ver se há possibilidade de otimização

 

Grupo: HAGR, SAGR

Esse tipo de operador realiza algum processamento nos dados buscados, ou mescla ou classifica, e mesclagem e classificação são interoperáveis ​​em alguns casos.Vamos primeiro examinar a situação básica desses operadores. Há uma instrução GROUP, uma dessas duas provavelmente aparecerá

 

SQL> criar tabela t4 (id int, id1varchar);

SQL> inserir no nível de seleção t4, nível de conexão dupla por nível <10000;

SQL> commit;

 

 

HAGR é o método de agrupamento mais básico, operação HASH AGR, para agrupar declarações sem condições de otimização, geralmente agrupadas desta forma, o princípio de agrupamento é semelhante ao método de HASH INNER JOIN, os dados da tabela original são retirados e cada cálculo FOLD, Verifica-se que existem FOLDs que são iguais e que atendem às condições subsequentes são fundidos em um grupo (, não é difícil descobrir que se os dados da tabela base forem muito grandes, a quantidade de cálculo de HAGR não pode ser ignorada, então quando certas condições são atendidas, podemos usar o ordenado Operador SAGR de caminhada sexual

 

SQL> criar ou substituir índice i_test4 ont4 (id, id1);

 

 

 

O operador SAGR aparece aqui, indicando que a saída da camada inferior é classificada pela coluna de agrupamento, a camada inferior é SSCN I_TEST4 e I_TEST4 é o índice composto (ID, ID1), que é ordenado de acordo com o ID e satisfaz a condição SAGR

 

SAGR, operação SORTED AGR, diferente de HASH AGR, porque os dados da camada inferior são ordenados, os dados do mesmo grupo podem ser retirados em ordem, economizando muitos cálculos

 

Classificar: SORT:

SORT é um operador usado em operações de classificação. Podemos realizar os seguintes experimentos.

 

 

Como você pode ver, não há operador SORT aqui. Conforme mencionado acima, o índice I_TEST já está ordenado por ID, portanto, a tarefa de classificação foi concluída no SSCN inferior. Se mudarmos uma coluna para teste.

 

SQL> explain select id, id1 de t4order por id1 desc;

 

 

 

Se você está classificando a coluna id1, você precisa fazer um SORT para id1 após o SSCN, que é uma grande sobrecarga para o banco de dados. Portanto, no uso real, também podemos encontrar maneiras de usar a ordem do índice para concluir a operação de classificação.

 

Este é o final da introdução aos fundamentos da otimização Dameng SQL. No compartilhamento de acompanhamento, também apresentaremos a visão do plano de execução e conhecimento de indexação, portanto, fique atento!

 

[Compartilhamento de produtos secos] Artigos básicos de otimização do Dameng SQL

[Compartilhamento de produtos secos] Artigos básicos de otimização do Dameng SQL (2)

Acho que você gosta

Origin blog.csdn.net/qq_42726883/article/details/108487443
Recomendado
Clasificación