Índice:
Vídeo: Aula 04 - Primeiros Passos no PL/SQL 2024
Todas as estruturas lógicas que você verá estão nos arquivos de dados do banco de dados. As estruturas lógicas da Oracle 12c permitem que você organize seus dados em peças gerenciáveis e, bem, lógicas.
Vamos examinar a relação dos objetos lógicos com os físicos. A flecha aponta na direção de um relacionamento de um para muitos.
Tablespaces no Oracle 12c
Tablespaces são o primeiro nível de organização lógica do seu armazenamento físico.
Cada banco de dados 12c deve ter os seguintes espaços de tabela:
-
SISTEMA: Armazena os objetos principais do banco de dados que são usados para executar o próprio banco de dados.
-
SYSAUX: Para objetos que são auxiliares e não especificamente ligados aos recursos principais do banco de dados.
-
UNDO: Armazena os segmentos de reversão ou desfazer usados para recuperação de transações.
-
TEMP: Para armazenamento temporário.
Cada espaço de tabela é responsável por organizar um ou mais arquivos de dados. Normalmente, cada espaço de tabelas pode começar a ser anexado a um arquivo de dados, mas à medida que o banco de dados cresce e seus arquivos se tornam grandes, você pode decidir adicionar o armazenamento na forma de vários arquivos de dados.
Então, qual é o próximo passo para obter o seu banco de dados em funcionamento? Você cria algumas áreas para armazenar seus dados. Diga que seu banco de dados terá vendas, recursos humanos, dados contábeis e dados históricos. Você pode ter os seguintes espaços de tabela:
-
SALES_DATA
-
SALES_INDEX
-
HR_DATA
-
HR_INDEX
-
ACCOUNTING_DATA
-
ACCOUNTING_INDEX
-
HISTORY_DATA
-
HISTORY_INDEX
Segmentos em Oracle 12c
Segmentos são a próxima estrutura de armazenamento lógico depois de espaços de tabela. Segmentos são objetos no banco de dados que requerem armazenamento físico e incluem o seguinte:
-
Tabelas
-
Índices
-
Exibições materializadas
-
Partições
Esses exemplos de objeto são não < segmentos e não armazene dados reais: Procedimentos
-
Sinônimos
-
Seqüências
-
A última lista de objetos não vive em um tablespace com segmentos. Eles são pedaços de código que vivem no tablespace SYSTEM.
Sempre que você criar um segmento, especifique o espaço de tabela que deseja que ele faça parte. Isso ajuda com o desempenho.
Extents em Oracle 12c
Extents
são como os anéis de crescimento de uma árvore. Sempre que um segmento cresce, ele ganha uma nova extensão. Quando você cria uma tabela pela primeira vez para armazenar itens, ele obtém sua primeira extensão. À medida que você insere dados nessa tabela, essa extensão é preenchida. Quando a extensão se enche, ele agarra outra extensão do tablespace. Quando você cria um espaço de tabela pela primeira vez, é todo o espaço livre. Quando você começa a criar objetos, esse espaço livre é atribuído a segmentos sob a forma de extensões. Seu espaço de tabela médio é composto de extensões usadas e espaço livre.
Quando todo o espaço livre é preenchido, esse arquivo de dados está fora do espaço. É aí que as suas habilidades DBA entram e você decide como disponibilizar mais espaço disponível para que os segmentos continuem se estendendo.
As extensões não são necessariamente contíguas. Por exemplo, quando você cria uma tabela de itens e insira os primeiros 1 000 itens, ele pode crescer e estender várias vezes. Agora seu segmento pode ser composto por cinco graus. No entanto, você também cria uma nova tabela.
Como cada tabela é criada em um novo espaço de tabelas, ele começa no início do arquivo de dados. Depois de criar sua segunda tabela, sua primeira tabela pode precisar se estender novamente. A próxima extensão vem após a segunda extensão. No final, todos os objetos que compartilham um tablespace terão suas proporções entremeadas.
Esta não é uma coisa ruim. Nos anos passados, antes de a Oracle ter melhores algoritmos de armazenamento, os DBAs gastaram muito tempo e esforços tentando unir essas extensões. Foi chamado
fragmentação. É uma coisa do passado. Não seja sugado! Deixa estar assim. O Oracle 12c é totalmente capaz de gerenciar tais situações. Existem situações em que você possui vários arquivos de dados em um tablespace. Se um tablespace tiver mais de um arquivo de dados, o tablespace cria automaticamente extensões de forma redonda em todos os arquivos de dados. Este é outro recurso de desempenho da Oracle.
Diga que você tenha uma tabela grande que suporte a maioria de sua aplicação. Vive em um tablespace composto por quatro arquivos de dados. À medida que a tabela se estende, o Oracle atribui as extensões em cada arquivo de dados como este:
1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4 … e assim por diante
Isto maneira, a Oracle pode aproveitar os dados espalhados por muitos dispositivos físicos quando os usuários acessam dados. Reduz a contenção em segmentos que têm muita atividade.
Oracle blocos no Oracle 12c
Um
bloco Oracle é a unidade mínima que a Oracle lê ou escreve a qualquer momento. Oracle geralmente lê e escreve mais de um bloco ao mesmo tempo, mas isso é até a Oracle nos dias de hoje. Você costumava ter um controle mais direto de como a Oracle gerenciava suas leituras e grava blocos, mas agora a funcionalidade é sintonizada automaticamente. Você pode ajustá-lo manualmente até certo ponto, mas a maioria das instalações é melhor deixada para a Oracle.
Oracle encontra o segmento.
-
Oracle pede esse segmento se houver algum espaço.
-
O segmento retorna um bloco que não está cheio.
-
A entrada de linha ou índice é adicionada a esse bloco.
-
Os blocos Oracle também possuem uma contrapartida física, assim como os arquivos de dados. Os blocos Oracle são formados por blocos de sistema operacional. É o tamanho formatado da unidade mínima de armazenamento no dispositivo.