Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as  
referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese 
das pesquisas que fizer.


Conceito



Banco de Dados


Um banco de dados pode ser definido como um conjunto de arquivos/informações armazenados de forma que haja uma relação lógica entre eles. Sua aplicação é muito vasta, visto que para quaquer médio/grande sistema surgirá a necessidade de armazenar de forma automatizada, dinâmica e segura seus dados. Existem 4 modelos de bancos de dados: planos, em rede, hierárquicos e relacionais. No entanto, trataremos apenas a respeito dos BDs relacionais, por basearem-se na SQL (linguagem para qual a ferramenta de tuning foi desenvolvida).

O modelo relacional designa o conceito criado por Edgar Frank Codd, baseado em relações matemáticas (álgebra relacional, teoria dos conjuntos etc),o qual tornou-se um padrão para aplicações comerciais devido a sua simplicidade e performance. O banco de dados que utiliza o modelo relacional dispõe seus dados em forma de coleções de tabelas. Tais tabelas são organizadas em colunas, em que cada coluna armazena um determinado tipo de dados (números reais, chars, strings etc). O acesso a uma determinada tabela é facilitado e agilizado através do uso de índices. Existem dois tipos de índices: clusterizados e não-clusterizados. Para que possamos entendê-los, é necessário que antes entendamos o que é uma clusterização. Nada mais é do que uma técnica de mineração de dados que agrupa os dados com base em seu grau de semelhança, enlaçando os com um algoritmo projetado em cima da estatística específica dos dados sistemáticos. Agora, índices clusterizados (ic) são utilizados para armazenar as linhas de dados da tabela respeitando seus valores de chave. Tais colunas são inclusas na própria definição do índex. Logo, é possível que exista apenas um índice clusterizado por tabela uma vez que as linhas de dados devem ser organizadas em somente uma única ordem. Já os indices não-clusterizados (in-c) apresentam uma estrutura distinta no que se refere às linhas de dados. Contém valores de chave de in-c e para cada input de valor de chave existe um ponteiro (funciona como um "localizador de linhas") para a linha de dados que contém tal valor de chave. Ambos têm seus prós e contras, elegidos primeiramente a respeito do consumo de disco/dados e o tempo de resposta. Devido ao grande impacto da organização dos índexes na performance geral do sistema, estão disponíveis várias ferramentas responsáveis pelo auxílio na seleção de índices apropriados, como o Orientador de Otimização do Mecanismo de Banco de Dados (SQL Server).

Funções de um DBA


As funções de um database assistant são de administrar e promover melhorias na performance e segurança de um determinado BD (Banco de Dados). O DBA deverá tratar: do ambiente do BD (hardware, software, infraestrutura de rede), dos parâmetros e configurações do BD bem como da otimização de instruções SQL via uma estruturação mais concisa.

Importância do tuning


A importância do tuning se dá quando há a necessidade de reduzir o tempo de resposta para os usuários do sistema ou reduzir o número de recursos utilizados pelo sgbd para execução de uma certa tarefa.

Técnicas


Utilizar corretamente índices e sua clusterizações/não-clusterizações. Executar partes de uma query de maneira paralela. Propor e inserir métodos de pesquisa dinâmica. Reduzir consumo de disco/dados.

Exemplos



Referências bibliográficas


Bancos de Dados - Communications of the ACM, Vol. 13, No. 6, June 1970, pp. 377-387. - Introduction to Database Systems. Date, C. J. 7th ed. 1999.