lokoder escreveu: > Os materiais que consultei mostram um compilador de consulta e um compilador > DML na arquitetura do SGBD. > O compilador de consulta entraria em cena quando fazemos uma consulta > ad-hoc, usando o terminal, por exemplo, e o compilador DML quando embutimos > um comando SQL de consulta num software. > Acho que você confundiu as coisas. No PostgreSQL (vide [1]), temos dois módulos: DML (execução de consultas tais como SELECT, UPDATE e DELETE) e DDL + outros (consultas tais como CREATE TABLE, GRANT e TRUNCATE).
> A minha dúvida é: por que dois compiladores pra 'mesma coisa'? > Porque simplesmente o primeiro módulo (DML) precisa montar um plano de execução e o segundo módulo *não*. > Claro que elas chegarão ao SGBD por diferentes modos, mas estando lá dentro, > não significam a mesma coisa, a nível de compilação/otimização? > Errado. Elas chegam pelo mesmo modo; e, após passar pelo _parser_ elas vão para um caminho ou para outro (slide 18 em [1]). [1] http://www.timbira.com/presentations/pgday_df_2009/perf_pg.pdf -- Euler Taveira de Oliveira http://www.timbira.com/ _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral