1.4 - Separação física de tabelas
Em um nível mais preciso de otimização, poderíamos ter um modelo de dados em que uma ou mais tabelas precisariam ter uma prioridade de processamento ou que essas tabelas, em relação às demais, teriam uma concorrência alta com muitos acessos simultâneos. Da mesma forma que separamos os arquivos do SGBD e depois os bancos de dados em áreas físicas distintas, também é possível separar tabelas de um banco de dados em áreas físicas separadas.
Conforme falamos, um banco de dados normalmente possui dois arquivos, um para dados e outro para transações. Porém essa configuração padrão normalmente pode ser alterada para vários arquivos de dados e/ou vários arquivos de transações. A fim de se obter uma maior performance para um grupo de tabelas específicas, um banco de dados pode conter, por exemplo, dois arquivos de dados, e cada arquivo de dados ser armazenado em uma área física distinta.
Veja um exemplo prático.
Suponha que uma organização utiliza um sistema e-Commerce que possui várias tabelas, entre elas, tabelas de produtos, de clientes e de vendas. Suponha que a funcionalidade de consulta de produtos esteja um pouco lenta (pois ela é executada por centenas de potenciais clientes ao mesmo tempo que acessam o sistema pela Internet). Uma das formas de se aumentar a performance desse sistema seria separar a tabela de produtos em um arquivo (dataset) separado, que seria armazenado, por exemplo, em um sistema RAID à parte. Dessa forma, o banco de dados do sistema e-Commerce poderia ter duas áreas de dados, uma para as tabelas de produtos e outra para as demais tabelas. Isolando as tabelas de dados em um conjunto de discos distinto das demais tabelas auxiliaria na otimização da performance do sistema, já que não haveria concorrência entre as operações de consulta de produtos e as operações sobre as demais tabelas.
X