Alguns problemas de desempenho estão associados a tabelas não fragmentadas e fragmentos de tabelas.
Os problema incluem:
- Posicionamento da tabela no disco para aumentar o rendimento e reduzir a contenção;
- Estimativas de espaço para tabelas, blobpages, sbspaces e extents;
- Alterações em tabelas que incluem ou excluem dados históricos;
- Desnormalização do banco de dados para reduzir a sobrecarga;
- Colocando tabelas no disco
As tabelas que o servidor de banco de dados suporta residem em uma ou mais partes de um ou mais discos. Você controla a colocação de uma tabela no disco ao criá-la, atribuindo-a a um dbspace. - Estimando o tamanho da tabela
Você pode calcular os tamanhos aproximados (em páginas de disco) das tabelas. - Gerenciando o tamanho do primeiro e do próximo extent para o tblspace
O tblspace é uma coleção de páginas que descreve a localização e a estrutura de todos os tblspaces em um dbspace. Cada dbspace tem um tblspace. Ao criar um dbspace, você pode usar os parâmetros de configuração TBLTBLFIRST e TBLTBLNEXT para especificar o primeiro e o próximo tamanho do extent para o tblspace em um dbspace raiz. - Gerenciando sbspaces
Um sbspace é uma unidade de armazenamento lógico composta por um ou mais blocos que armazenam objetos grandes inteligentes. Você pode estimar a quantidade de armazenamento necessária para objetos grandes inteligentes, melhorar o I/O de metadados, monitorar sbspaces e alterar as características de armazenamento. - Gerenciando extents
Conforme você adiciona linhas a uma tabela, o servidor de banco de dados aloca espaço em disco em unidades chamadas extensões. Cada extensão é um bloco de páginas fisicamente contíguas do dbspace. Mesmo quando o dbspace inclui mais de um fragmento, cada extensão é alocada inteiramente em um único fragmento, para que permaneça contígua. - Armazenamento de vários fragmentos de tabela em um único dbspace
Você pode armazenar vários fragmentos da mesma tabela ou índice em um único dbspace, reduzindo assim o número total de dbspaces necessários para uma tabela fragmentada. Você deve especificar um nome para cada fragmento que deseja armazenar no mesmo dbspace. Armazenar vários fragmentos de tabela ou índice em um único dbspace simplifica o gerenciamento de dbspaces. - Exibindo uma lista de partições de tabela e índice
Use a opção onstat -g opn para exibir uma lista das partições de tabela e índice, por ID de encadeamento, que estão atualmente abertas no sistema. - Alterar tabelas para melhorar o desempenho
Você pode alterar as tabelas para melhorar o desempenho, eliminando índices, anexando ou desanexando fragmentos e alterando as definições da tabela. Você também pode criar bancos de dados para aplicativos de suporte à decisão descarregando e carregando tabelas em bancos de dados OLTP. - Desnormalize o modelo de dados para melhorar o desempenho
Pode ser necessário desnormalizar o modelo de dados para reduzir a sobrecarga e otimizar o desempenho. - Reduza o espaço em disco em tabelas com linhas de comprimento variável
Você pode habilitar o servidor de banco de dados para inserir mais linhas por página em tabelas com linhas de comprimento variável, se você definir o parâmetro de configuração MAX_FILL_DATA_PAGES para 1. Permitir mais linhas de comprimento variável por página tem vantagens e desvantagens. - Reduza o espaço em disco compactando tabelas e fragmentos
Você pode reduzir o espaço em disco compactando dados em tabelas e fragmentos de tabelas. Depois de compactar os dados, você pode empacotar novamente os dados para consolidar o espaço livre em uma tabela ou fragmento e reduzir o espaço para os dados retornarem o espaço livre ao dbspace.