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