A administração do armazenamento de um banco de dados é fundamental em qualquer sistema de software, e um dos conceitos essenciais dentro desse contexto é o de "tablespace". Neste artigo, mostraremos o que é um tablespace, sua sintaxe, vantagens e desvantagens, e exemplos de aplicações no mercado.
O que é uma TableSpace?
A tablespace no Oracle é uma unidade lógica de armazenamento que serve como uma área para armazenar dados do banco de dados. O Oracle organiza os dados logicamente em tablespaces, que, por sua vez, são compostos por um ou mais arquivos de dados (datafiles), cada arquivo de dados está ligado exclusivamente a uma tablespace.
Em resumo, tablespaces são unidades organizacionais lógicas que agrupam segmentos, como tabelas e índices, enquanto os arquivos de dados (datafiles) representam a implementação física dessas tablespaces, armazenando coletivamente todos os dados do banco de dados Oracle.
A figura a seguir ilustra o relacionamento entre um banco de dados, espaços de tabela e arquivos de dados:
O que posso fazer em uma Tablespace?
- Controlar o tamanho do armazenamento que será alocado para os dados do banco de dados;
- Conceder cotas de espaço específicas aos usuários do banco de dados;
- Melhorar o desempenho do banco de dados alocando armazenamento de dados entre dispositivos;
- Executar backup ou recuperação parcial do banco de dados.
Quais os tipos de Tablespace?
- TABLESPACE para Dados: Armazena os dados das tabelas e clusters.
- TABLESPACE para Índices: Destinado exclusivamente ao armazenamento de índices. Separar dados e índices pode otimizar a performance.
- TABLESPACE Temporária: Utilizada para operações que necessitam de espaço temporário, como as operações de ordenação.
- TABLESPACE de Desfazer (UNDO): Armazena informações de desfazer, que são usadas para reverter transações e manter a consistência dos dados.
Criação de uma Tablespace:
A criação de TABLESPACES é realizada através do comando CREATE TABLESPACE. A sintaxe é:
CREATE TABLESPACE nome_tablespace
DATAFILE 'caminho/arquivo.dbf'
SIZE tamanho_inicial
AUTOEXTEND ON NEXT tamanho_incremental
MAXSIZE tamanho_maximo;
Alteração de uma Tablespace:
Para modificar um TABLESPACE existente, utiliza-se o comando ALTER TABLESPACE. Por exemplo, para adicionar ou redimensionar um arquivo de dados:
Adicionar um arquivo:
ALTER TABLESPACE tbs_exemplo
ADD DATAFILE '/oradata/tbs_exemplo02.dbf'
SIZE 100M;
Redimensionar um arquivo:
ALTER DATABASE tbs_exemplo
DATAFILE '/oradata/tbs_exemplo.dbf'
RESIZE 150M;
Exclusão de uma Tablespace:
A exclusão é realizada com o comando DROP TABLESPACE, seguido pelo nome do TABLESPACE e, opcionalmente, pela cláusula INCLUDING CONTENTS para eliminar também os objetos associados. Por exemplo:
DROP TABLESPACE tbs_exemplo
INCLUDING CONTENTS;
Quais são as vantagens e desvantagens de uma Tablespace?
VANTAGENS:
- Gerenciar um Armazenamento Flexível: O Tablespace nos permite que o banco de dados seja alocado e redistribuído de uma forma mais flexível em seu armazenamento, de acordo com o que for necessário, assim facilitando a adaptação que este banco de dados teve devido às mudanças que foram feitas em seu armazenamento.
- Melhorias no Desempenho: Ao se distribuírem as tabelas e índices em tablespaces separadas, podemos ter um melhor desenho, isso porque os dados serão distribuídos em diferentes sistemas de armazenamento, o que reduz a limitação do E/S.
- Backup e Recuperação mais Eficientes: É possível colocar tablespaces em locais de backup e restauração granulares, isso nos ajuda porque assim podem ser realizados backups individuais dos tablespaces, facilitando e tornando o processo mais eficiente do backup de todo o banco de dados.
- Gerenciar Espaço Temporário: É possível criar tablespaces temporários, que armazenará dados temporários que são usados apenas para consultas e operações de classificação, o que melhora o desempenho por estar separando dados temporários dos dados permanentes.
- Isolar Dados: O tablespace consegue nos ajudar na hora que precisamos isolar algum dado, o que nos facilita uma administração e manutenção maior, ao separar alguns dados de de outros projetos.
DESVANTAGENS:
- Planejamento Adequado: O tablespace tem muito benefícios, porém para usufruir dos mesmo é necessário um melhor planejamento, bem mais cuidadoso e bem gerenciado, o que exige maior tempo e trabalho no projeto.
- Aloca em Espaço Desigual: Além de um bom planejamento, também é necessário gerenciar muito bem os tablespace, isso porque se houver qualquer erro ele pode acabar colocando os dados em espaços desiguais, o que prejudica o desempenho.
- **Complexidade: **Ao usarmos o tablespace, ele nos traz uma maior complexibilidade ao nosso projeto, isso porque é necessário maior cuidado e planejamento para criação do mesmo.
- Recuperação Granular Complexa: Neste caso aqui, a recuperação além de vantajosa, traz também uma desvantagem, isso porque ao fazermos uma recuperação, é necessário saber bem qual dado será recuperado, para não trazer falhas ao projeto.
Exemplos de aplicações no mercado:
Oracle Database
No dia-a-dia usando o Oracle Database para ter um Ambientes de Desenvolvimento e Teste criando cópia do sistema que está em produção tendo a segurança de fazer simulações com as informações atualizadas e originais sem ter risco de corromper a estrutura em produção, para aumentar a segurança de que os dados armazenados não serão perdidos nesse processo de Testes ou por uma possível falha, a utilização da tablespace contém Backups e Recuperação podendo realizar backups de tablespaces específicas garantindo teste seguros e acelerando o consumo de dados em grandes volumes. Uma outra função interessante é a Manutenção Online que se baseia em atualizar uma tabela minimizando o impacto nos usuários finais, como por exemplo, criar um índice em uma tabela temporária e já atualizar essa opção em produção para o usuário sem a necessidade de interromper o sistema que está em produção.
MySQL
Já no MySQL a tablespace é utilizada para algumas funções semelhantes mas outras também como Organização de Dados, dando a possibilidade de organizar os dados relacionados a áreas específicas, facilitando a manutenção e a administração do sistema. Como pode acontecer de existir estruturas com um tamanho grande para o banco de dados, a utilização do Particionamento de Tabelas é muito utilizado, já que aquela tabela será dividida em tabelas menores, fazendo com o que a busca, manutenção e atualização do banco seja simplificada, não tendo a necessidade de acessar toda a tabela que deseja gerenciar. Também é possível fazer Backups e Recuperação que é igual ao Oracle, podendo selecionar tabelas, objetos e estruturas específicas, acelerando o consumo de dados em grandes volumes.
CONCLUSÃO
As tablespaces desempenham um papel fundamental no gerenciamento de um bancos de dados, pois permite que o seu administrador tenha eficiência, segurança, controle das ações feitas dentro do banco, controle de desempenho e a capacidade de restaurar dados de maneira simples e eficaz. Ao mesmo tempo que essa ferramenta auxilia muito, ela exige conhecimento detalhado, tendo em vista a complexibilidade, responsabilidade e além de tudo se a utilização dela é realmente necessária para o banco de dados no gerenciamento das funções e dos dados armazenados nas estruturas. Por esses motivos o estudo e experiência dessa ferramenta é de vital importância ao utilizar, assim garantimos a integridade e a confiabilidade de todo o gerenciamento do banco de dados.
Top comments (0)