Introdução e índice com os outros posts desta série.
Um extent (extensão) é um arquivo físico em disco onde o banco de dados persiste todas as informações, sejam blocos de dados e índices, notas de transação ou informações de controle. Um banco de dados OpenEdge é composto de um número variado de extensões, que podem residir em diferentes discos.
Uma extensão de banco de dados sempre está associada a uma e somente uma Storage Area, e cada uma destas áreas precisa ter no mínimo uma extensão. Como o número mínimo de áreas em um banco é 3 (Control Area, Primary Recovery Area e Schema Area), o número mínimo de extensões é, por conseqüência, também 3. O número máximo de extensões varia conforme a área. Independente da área, o tamanho máximo de cada extensão (teoricamente) é de 1TB, se a opção de arquivos grandes estiver habilitada.
O nome das extensões deve seguir uma regra de nomenclatura. O OpenEdge valida este nome no momento da criação das extensões e não permite a criação de uma extensão cujo nome não siga o padrão estabelecido.
Outra característica é que as extensões podem ter tamanho fixo ou variável. As extensões de tamanho fixo tem seu tamanho pré-determinado no momento da criação e não podem ser alteradas. As extensões de tamanho variável são criadas com um tamanho mínimo (alguns poucos KBs) e crescem conforme são utilizadas. Apenas a última extensão de cada área pode ser de tamanho variável. As demais são de tamanho fixo.
A Control Area pode ter somente uma extensão, que é variável. O nome do arquivo é sempre <banco>.db. Para um banco de dados de nome blog, por exemplo, o nome do arquivo seria blog.db.
A área do before-image (BI) pode ter até 1023 extensões. A última extensão desta área deve ser de tamanho variável, obrigatoriamente. O nome das extensões seguem o padrão <banco>.b<N>, onde <N> é um número sequencial iniciando de 1. Para o banco blog, o nome das 3 primeiras extensões nesta área seriam blog.b1, blog.b2 e blog.b3.
A Schema Area (área 6 do banco de dados), assim como as outras áreas de dados (opcionais), também pode ter até 1023 extensões. A última extensão, e somente a última, de cada uma destas áreas pode ser variável. O nome dos arquivos da Schema Area segue o padrão <banco>.d<N>. Para as demais área, o padrão é <banco>_<número_área>.d<N>. A Schema Area do banco blog tem extensões de nome blog.d1, blog.d2, blog.d3, etc. A área de número 15 deste mesmo banco teria extensões de nome blog_15.d1, blog_15.d2, blog_15.d3, etc.
Cada área de after-image (AI) só pode ter uma extensão, de tamanho fixo ou variável. No entanto é possível ter várias áreas de AI. O nome das extensões de AI segue o padrão <banco>.a<número_área_AI>, onde <número_área_AI> representa um número sequencial para cada área de AI. Para o banco blog, teríamos blog.a1, blog.a2, blog.a3, etc.
Existem duas discussões clássicas sobre extensões no banco de dados:
- usar várias extensões pequenas ou usar poucas extensões grandes?
- usar extensões de tamanho fixo ou extensões de tamanho variável?
Nos próximos posts desta série abordarei estas duas questões.