Foi feito uma varredura no índice da tabela
Foi feito um table scan na tabela
Usado com count, sum, min, max, avg, sttdev, variance. Ao ser usado com o GROUP BY, se o result set for pequeno, ele será carregado num hash e a agregação será feira nesse hash(Hash Aggregate).
Caso o resultset seja muito grande, será usado o Group Aggregate, sem o hash.
Usado em cláusulas UNION e em consultas envolvendo herança.
É usado um bitmap (mapa de bits). Usado em colunas de baixa cardinalidade.
É usado um bitmap (mapa de bits) a partir do índice. Usado em colunas de baixa cardinalidade.
Denota uma função hash executada na tabela (para ser usada posteriormente em um hash join ou hash left join)
Aplicar o algoritmo de hash join em um inner join de duas relações funciona da seguinte maneira: primeiro, é preparada uma hash para a relação menor, aplicando uma função hash para cada linha , na columa a ser usada no join.Então, a relação maior é escaneada, em busca das linhas relevantes, procurando pela hash table. Usado com INNER JOIN, OUTER JOIN.
Cláusula de limitação
Um sub-plano foi materializado em um arquivo temporário
O Merge Join é um operador binário.Os lados esquerdo e direito são os fluxo de dados externo e interno, respectivamente. Ambos fluxos devem ser organizados de acordo com a chave do merge-join. Primeiro, uma linha do fluxo exterior é lido. Isso inicializa os valores das chaves do merge join. Então, linhas do fluxo interno são lidas até que uma linha tenha uma valor que case ou seja maior (exceto se a coluna chave é descendente ) seja encontrada. Se as chaves da junção casam, então a columa qualificadora é passada adiante para processamento adicional, e uma próxima chamada ao operador merge-join continua lendo do fluxo de dados atual.Se os novos valores são maiores que a chave de comparação, então esses valores são usados como a chave de junção, enquanto a traz linhas dos outros fluxos de dados.Esse processo continua até um dos fluxo de dados terminar.
(Loop aninhado [1]) Se você faz o join em duas tabelas, e o otimizador do PosrtgreSQL escolhe um join do tipo Nested-Loop, então uma tabela será acessada como a tabela externa e a outra como a tabela interna. O PostgreSQL irá escanear a tabela externa linha a linha e para cada linha na tabela externa, ele irá escanear a tabela interna, procurando pelas linhas equivalentes. Usando com INNER JOIN e LEFT OUTER JOIN.
Resultado de uma função
Ordenação. Usado explicitamente com a cláusula 'ORDER BY', porém é usado implicitamente ao tratar de Unique, Sort-Merge Joins e outros operadores.
Indica o uso de uma subconsulta.
Usado o Tuple ID da coluna, somente quando a cláusula 'ctid=' aparece na query. Muito raro, e muito rápido.(praticamente apenas consultas ao cátalogo do sistema)
Usado em DISTINCT e Union. Não muda a ordenação, apenas elimina as linhas duplicadas. O grupo de entrada deve estar ordenado (forçará um SORT, se necessário)
| [1] | Adaptado de http://www.mssqlcity.com/Articles/General/NestLoop.htm |
| [2] | Adaptado de http://en.wikipedia.org/wiki/Hash_Join |