DEV Community

Cover image for TableSpace ;
Daniel Ferreira Silva
Daniel Ferreira Silva

Posted on

TableSpace ;

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.

Image description

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:

Image description

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;
Enter fullscreen mode Exit fullscreen mode

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;
Enter fullscreen mode Exit fullscreen mode

Redimensionar um arquivo:

ALTER DATABASE tbs_exemplo
    DATAFILE '/oradata/tbs_exemplo.dbf' 
    RESIZE 150M;
Enter fullscreen mode Exit fullscreen mode

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;
Enter fullscreen mode Exit fullscreen mode

Quais são as vantagens e desvantagens de uma Tablespace?

Image description

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:

Image description
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

Image description
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)