Tuning de desempenho no SGBD.
Este artigo aborda a aplicação de tais técnicas de tuning para melhoria do desempenho de bancos de dados PostgreSQL. São apresentados os principais problemas encontrados em algumas consultas ao banco de dados nessa etapa e, em seguida, as respectivas soluções sugeridas. Durante o artigo são apresentadas situações sobre como a aplicação de técnicas de tuning pode melhorar o desempenho de um banco de dados. O objetivo do artigo é apresentar possíveis soluções de melhorias em um banco de dado PostgreSQL com ênfase em melhoria no seu desempenho.
Tuning em Banco de Dados
O processo de tuning é algo que só deve ser realizado quando houver uma real necessidade, pois envolve uma grande quantidade de processos tanto do SGBD como do sistema operacional. Tuning não é só configuração do SGBD, algumas vezes requer configuração no sistema operacional ou otimizar as consultas realizadas nos bancos, e algumas configurações podem acarretar em problemas futuros ou até mesmo mau funcionamento do SGBD.
A técnica de tuning de desempenho é uma prática feita em todos os SGBDs importantes com técnicas diferentes. É uma necessidade de toda grande empresa, e requer um grande nível de conhecimento e experiência sobre os processos e suas técnicas, pois nem sempre o problema será resolvido com uma ou duas alterações, às vezes é necessário uma mudança nas queries.
Prática do Tuning no PostgreSQL
Uma forma de melhorar o desempenho das tabelas com grandes quantidades de registros e especialmente com muitos acessos através do PostgreSQL é a inclusão de índices estratégicos. Além da chave primária, é importante inserir índices em campos que compõem a cláusula WHERE ou que fazem parte de cláusulas ORDER BY, GROUP BY. Na criação do banco de dados e especialmente na criação das consultas, é muito importante atentar para um bom planejamento, normalização e consultas otimizadas tendo em vista o planejador de consultas do PostgreSQL através do uso dos comandos EXPLAIN e ANALYZE.
A administração do PostgreSQL também é muito importante para tornar o SGBD mais eficiente e rápido. Desde a instalação e configuração temos cuidados que ajudam a otimizar o PostgreSQL.
Aplicando Tuning no PostgreSQL
A prática de tuning não é algo que se faz simplesmente por fazer. É necessário ter conhecimento e prática sobre o assunto. Algumas técnicas de tuning são simples e de fácil compreensão, mas algumas requerem conhecimento sobre Sistema Operacional ou Hardware.
A aplicação de técnicas de tuning eventualmente requer muita análise, devendo sempre trabalhar cada caso de uma forma diferente, ou seja, não existe uma “receita de bolo” pré-definida para a aplicação de tuning em um banco de dados. As técnicas que usaremos neste artigo são técnicas simples de uso do próprio banco. Possíveis técnicas a serem aplicadas no Sistema Operacional ou no hardware serão somente citadas, sem maiores detalhes.
No nosso estudo de caso estamos trabalhando com a versão mais atual do PostgreSQL, a versão 8.3RC2, e com o sistema operacional Windows Vista.
Estudo de Caso
No nosso estudo de caso, teremos a situação de uma tabela de clientes com grande quantidade de registros, e usaremos técnicas de tuning para melhorar a velocidade de resposta da consulta.
A partir de agora iremos inicialmente construir nosso cenário de aplicação de tuning, para depois aplicar as técnicas. Sendo assim, inicialmente vamos criar um BD com o nome SQLMagazine. A codificação WIN1252 será usada por ser padrão do PostgreSQL 8.3RC2. O código de criação está apresentado na Listagem 1.
Listagem 1. Criando o banco de dados de nosso estudo de caso
CREATE DATABASE "SqlMagazine" WITH OWNER = postgres ENCODING = 'WIN1252';
Depois de criado o banco de dados, devemos criar uma tabela com o nome clientes, cujos campos sejam codcli (chave primária – integer), nome ( ...