quinta-feira, 21 de junho de 2018

O que é essa tabela HTMLDB_PLAN_TABLE? Posso apagar?

Olá pessoal,

hoje vamos falar sobre a tabela HTMLDB_PLAN_TABLE que aparecem em esquemas Oracle associados a algum workspace do Apex.

Afinal, para que serve esta tabela? Posso apagá-la?

Ao realizar uma busca por HTMLDB_PLAN_TABLE na documentação da Oracle e do Apex: No results found.

Caso a tabela HTMLDB_PLAN_TABLE já exista, execute o comando de dropar e após isso faça uma consulta para confirmar a não existência.
Observe que o Comandos SQL informa que "a tabela ou view não existe", quando um comando de SELECT é executado.

Seguem os comandos executados:
DROP TABLE htmldb_plan_table;
SELECT * FROM htmldb_plan_table;

Após isso, digite um comando de SELECT qualquer. Utilizei o comando abaixo:

SELECT * 
FROM emp e
JOIN dept d ON e.deptno = d.deptno

Clique em "Explicação" e verifique que o Comandos SQL apresenta o resultado equivalente ao Explain Plan da Oracle.
Veja referência para o Explain Plan na documentação da Oracle: https://docs.oracle.com/database/121/SQLRF/statements_9010.htm#SQLRF01601
Caso prefira um artigo em português, segue o do colega Tércio Costa (Oracle ACE Associate):  https://oraclepress.wordpress.com/2017/01/16/explain-plan/


Após isso, veja que o Apex criou a tabela htmldb_plan_table com o resultado do explain plan.

Conclusão

A tabela HTMLDB_PLAN_TABLE é utilizada pelo Apex para armazenar os resultados da "Explicação" (Explain plan) de consultas e pode ser apagado sem medo.