Entendendo os ícones usados no pgadmin

Ícones:

Index scan
http://waltercruz.com/images/explain/ex_index_scan.png

Foi feito uma varredura no índice da tabela

Table scan:
http://waltercruz.com/images/explain/ex_scan.png

Foi feito um table scan na tabela

Aggregate, Hash Aggregate, Group Aggregate:
http://waltercruz.com/images/explain/ex_aggregate.png

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.

Append:
http://waltercruz.com/images/explain/ex_append.png

Usado em cláusulas UNION e em consultas envolvendo herança.

Bitmap Heap Scan:
http://waltercruz.com/images/explain/ex_bmp_heap.png

É usado um bitmap (mapa de bits). Usado em colunas de baixa cardinalidade.

Bitmap Index Scan:
http://waltercruz.com/images/explain/ex_bmp_index.png

É usado um bitmap (mapa de bits) a partir do índice. Usado em colunas de baixa cardinalidade.

Hash:
http://waltercruz.com/images/explain/ex_hash.png

Denota uma função hash executada na tabela (para ser usada posteriormente em um hash join ou hash left join)

Hash join, Hash Left Join [2]:
http://waltercruz.com/images/explain/ex_join.png

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.

Limit:
http://waltercruz.com/images/explain/ex_limit.png

Cláusula de limitação

Materialize:
http://waltercruz.com/images/explain/ex_materialize.png

Um sub-plano foi materializado em um arquivo temporário

Merge Join:
http://waltercruz.com/images/explain/ex_merge.png

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.

Nested Loop (ou Nested Loop Left Join):
http://waltercruz.com/images/explain/ex_nested.png

(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.

Function:
http://waltercruz.com/images/explain/ex_result.png

Resultado de uma função

Sort:
http://waltercruz.com/images/explain/ex_sort.png

Ordenação. Usado explicitamente com a cláusula 'ORDER BY', porém é usado implicitamente ao tratar de Unique, Sort-Merge Joins e outros operadores.

Subconsulta:
http://waltercruz.com/images/explain/ex_subplan.png

Indica o uso de uma subconsulta.

Tid Scan:
http://waltercruz.com/images/explain/ex_tid_scan.png

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)

Unique:
http://waltercruz.com/images/explain/ex_unique.png

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)

# % if c.boo_box: Kit Suporte p/ Livros Metal Book End c/ 02 Peças Kit Suporte p/ Livros MDF c/ Porta Retrato Book End Watchmen: Motion Comic- Duplo DVD Crepúsculo+DVD Lua Nova+2 Livros com as Capas do Filme+Almanaque Desenvolvimento de um Sistema Usando Delphi, Postgresql e SQL Sonic and the Black Knight