Firebird
Otimização de consultas no Firebird
Independente do tipo de aplicação desenvolvida, Web ou desktop, garantir o seu desempenho é fundamental. Para isso, é preciso analisar e entender os fatores que contribuem para degradação do desempenho de um sistema. Dentre esses fatores, um dos principais refere-se ao desempenho das operações executadas no banco de dados, principalmente das consultas, utilizadas com grande frequência.
Este artigo busca esclarecer algumas dessas questões relativas ao desempenho de consultas em bancos de dados e apresentar as ferramentas disponíveis no Firebird que auxiliam na tarefa de otimização, possibilitando a criação de consultas mais refinadas, objetivando o ganho de desempenho.
Plano de execução
Quando uma operação é submetida ao banco de dados, seja ela um Select, Insert ou outra qualquer, o Firebird, assim como outros SGBDs, possui um mecanismo interno chamado otimizador de consultas, que tem a tarefa de analisar a operação a ser executada e avaliar a utilização de índices, Unions, Joins e outros, formando então um plano de execução, chamado de Plan no Firebird.
Como resultado do plano de execução tem-se o custo da operação, que é uma forma de avaliar se a consulta obteve um ganho de desempenho ou não. Internamente o otimizador executa uma seqüência de passos para escolher qual tipo de leitura será utilizado, se serão feitos diretamente sobre os registros ou através de estruturas de índices, bem como informar o tempo utilizado e o total de registros percorridos.
Cada consulta executada possui um plano específico que pode ser definido automaticamente pelo otimizador do Firebird ou manualmente pelo desenvolvedor da aplicação. Se esse otimizador avaliar que o custo da operação foi ruim, ele pode submeter a consulta a outra otimização ou então não usar otimização, utilizando um Natural Plan." [...] continue lendo...