Diferenças entre COUNT(*), DISTINCT, UNION e paginação em SQL
Compreendendo as diferenças entre COUNT(*) e COUNT(coluna)
/*
COUNT(coluna_específica): conta o total de elementos não nulos nessa coluna.
COUNT(*): conta o número total de linhas na tabela.
Uma vez que em cada registro é impossível que todas as colunas sejam NULL,
se uma linha contiver pelo menos um valor não nulo, ela é considerada vá ...
Publicado em 6-18 18:34
Valor padrão do parâmetro _small_table_threshold no Oracle
O parâmetro oculto _small_table_threshold define o tamanho máximo (em blocos) que uma tabela pode ter para que suas varreduras completas utilizme o buffer cache do Oracle. Tabelas maiores que esse limite tendem a usar leitura direta (direct path read) em operações de full table scan serializadas.
Fórmula de cálculo do valor padrão
O Oracle calc ...
Publicado em 6-15 18:22
Como Ordenar Dados em Banco de Dados com ORDER BY Seguindo uma Ordem Específica
Métodos de Ordenação Personalizada em SQL
Em muitas aplicações, é necessário fornecer resultados de consulta ordenados de acordo com requisitos específicos. Existem várias abordagens para implementar ordenação personalizada em SQL, conforme discutido abaixo:
1. Ordenação Nível de Instrução SQL
Para aplicações que exigem ordenação específica em ...
Publicado em 6-15 05:21
Otimizando Paginação Física no Oracle com MyBatis: Como Evitar o Problema de Hard Parse
O RowBounds padrão do MyBatis realiza o que chamamos de paginação em memória. Ele recupera todo o conjunto de dados do banco de dados e, somente no lado da aplicação, extrai o subconjunto desjeado. Em sistemas com grandes volumes de dados, essa abordagem é um caminho rápido para erros de OutOfMemoryError (OOM).
A solução convencional no ecossis ...
Publicado em 6-15 03:31
Análise Profunda da View de Performance Dinâmica V$PROCESS_MEMORY_DETAIL_PROG do Oracle
Este artigo oferece uma análise técnica aprofundada da view de performance dinâmica V$PROCESS_MEMORY_DETAIL_PROG no Oracle 19C. Esta view fornece informações de diagnóstico mais detalhadas e granulares do que a V$PROCESS_MEMORY_DETAIL, correlacionando alocações de memória a chamadas de funções internas (funções C).
1. Propósito e Visão Geral
A ...
Publicado em 6-10 06:13
Comparação de Comportamento de Bloqueio ao Adicionar Campos em Grandes Tabelas em Oracle, MySQL e PostgreSQL
Comparação de Comportamento de Bloqueio ao Adicionar Campos em Grandes Tabelas em Oracle, MySQL e PostgreSQL
Este artigo analisa o impacto de bloqueios ao adicionar colunass em tabelas de alto volume em três sistemas de bancos de dados: Oracle, MySQL e PostgreSQL. A comparação abrange tipos de bloqueio, duração e efeitos em operações DML e cons ...
Publicado em 6-8 20:10
Instalação Automática do Oracle 21C RAC no RedHat 7.9
Introdução
Este documento demnostra o processo de instalação automatizada do Oracle 21C RAC (21.14) no sistema operacional RedHat 7.9, utilizando um script de instalação assistida que não requer intervenção manual durante o processo.
⭐️ Baixar script de instalação: Script Shell para Instalação do Oracle Database
Preparação do Ambiente
1 - I ...
Publicado em 6-8 16:21
O Processo Sobrecarregado Impacta o Sistema de Negócios Principal
Ao depurar problemas de desempenho em um banco de dados Oracle, uma situação comum é uma sessão ou processo consumindo recursos excessivos e, consequentemente, impactando a aplicação principal. Este comportamento pode frequentemente levar a bloqueios (locks) e deadlocks, fazendo com que as operações pendurem indefinidamente sem concluir ou repo ...
Publicado em 6-7 17:44
Estruturas de Controle de Fluxo em PL/SQL Oracle
Uso de Comandos IF em PL/SQL
O comando IF permite executar código com base em condições. Abaixo, um exemplo simples com variáveis alteradas:
SET SERVEROUTPUT ON;
DECLARE
valor_num NUMBER := 5;
mensagem VARCHAR2(30) := 'Teste PL/SQL';
BEGIN
DBMS_OUTPUT.PUT_LINE(mensagem || ': ' || valor_num);
END;
/
-- Saída: Teste PL/SQL: 5
Para ve ...
Publicado em 6-5 07:14