SQL & PL/SQL


Profile PL/SQL applications package DBMS_HPROF [Abril 2019]
Por Tércio Costa
Neste artículo, iremos demonstrar o uso da package DBMS_HPROF lançado na versão 11g, que faz o profile hierárquico.

Exportando e Importando Fixed-User Database Links [Fevereiro 2019]
Por Tércio Costa, Skant Gupta
Database link é um objeto do esquema que permite que os DBAs acessem objetos em bancos diferentes.

Oracle Virtual Index ou Fake Index [Abril 2018]
Por Anderson Graf e Jhonata Lamim
O principal propósito de um virtual index é simular a existência do mesmo sem a necessidade de realmente cria-lo. Isso permite reduzir o tempo gasto na criação do índice para validação da utilização do mesmo pelo otimizador.

Reproduzindo SQL problems com o Oracle SQL Test Case Builder [Março 2018]
Por Anderson Graf
O objetivo do SQL Test Case Builder (TCB) é reunir de forma automática o máximo de informações possíveis relacionadas a um SQL problemático/incident e permitir a criação um ambiente totalmente reproduzível para diagnostico e reparo do problema.

Oracle SQL Patch [Março 2018]
Por Rogerio Eguchi
Esse recurso permite ao DBA anexar um hint à consulta problemática em tempo de execução, sem a necessidade de alteração no código da aplicação.

Utilizando o Hive e o Impala através do banco de dados Oracle [Janeiro 2018]
Por Yenugula Venkata Ravi Kumar, Adrian Neagu e Alex Zaballa
Com a disseminação de tecnologias de Big Data nas organizações ocorrem problemas de integração com os sistemas legados. Neste artigo iremos demonstrar a utilização do banco de dados Oracle com o Hive e o Impala.

"The Wrap Utility", criptografando o nosso código [Outubro 2016]
Por Tercio Costa
Hoje, uma das coisas de maior valor existe é a propriedade intelectual e nosso código fonte também está dentro dessa propriedade. Podemos e devemos proteger o código no banco de dados Oracle, esta proteção pode ser feita com o utilitário chamado wrap. Neste artigo veremos como criptografamos o nosso código.

Utilizando Processamento Paralelo com o PARALLEL ENABLE [Junho 2016]
Por Tércio Costa
O uso de processadores com mais de um core está completamente comum. Uma solução é habilitar o processamento paralelos nas nossas querys, para isto iremos utilizar a cláusula PARALLEL ENABLE, que nos trará uma grande vantagem de performance, onde iremos ganhar em tempo de execução.

Criando SQL Plan baselines utilizando o SQL*Plus [Maio 2016]
Por Alex Zaballa
Neste artigo vamos ver como os bancos de dados Oracle 12c a evolução da baselines foi automatizado e como fazer este processo através do SQL*Plus.

SERIALLY_REUSABLE Packages [Maio 2016]
Por Tércio Costa
Neste artigo vamos entender um pouco sobre o funcionamento do package SERIALLY_REUSABLE, um componente muito importante do Oracle Database.

Entendendo e Utilizando os atributos SQL%BULK_ROWCOUNT e SQL%BULK_EXCEPTIONS [Fevereiro 2016]
Por Tércio Costa
Neste artigo vamos ver como fazer uso de atributos em operações com bulk em blocos PL/SQL.

Criando e Gerenciando Usuários, Roles e Privilégios no Oracle Database 12c utilizando SQL*Plus [Janeiro 2016]
Por Alex Zaballa
Neste artigo, iremos verificar como criar e gerenciar usuários, roles e privilégios com Oracle SQL Plus em um ambiente Multitenant.

Administrando CDBs no Oracle Database 12c utilizando o SQL*Plus [Janeiro 2016]
Por Alex Zaballa
O Oracle Database 12c oferece uma nova opção chamada Oracle Multitenant, que permite a consolidação de forma simplificada. Neste artigo, iremos verificar como administramos CDBs utilizando o SQL*Plus.

Tipos de Joins: Padrões ANSI92 (SQL92) e SQL89 [Março 2015]
Por Eduardo Soares Alves e José Carlos de Castro Júnior
Neste artigo vamos demonstrar algumas Joins, nos padrões SQL89 e ANSI92 ou SQL92, são elas: Inner Join, Left Join, Right Join, Full Join e Cross Join, sendo as duas primeiras as mais utilizadas em nosso dia-a-dia.

Oracle Database 12c: "AUTOMATIC SQL TUNING" (Part II) [Dezembro 2014]
Por Joel Pérez, Karan Dodwal e Flávio Soares
Neste artigo vamos criar uma tuning task com o SQL Tuning Advisor com escopo abrangente (comprehensive) que significa que o Oracle também irá analisar se a instrução pode se beneficiar do SQL Profile.

Um pouco sobre índices invisíveis, disponíveis a partir do Oracle 11g [Dezembro 2014]
Por Eduardo Legatti
Neste artigo irei demonstrar tanto a abordagem de marcar um índice como inutilizável, como a de marcar um índice como invisível no Oracle 11g.

Oracle Database 12c: "AUTOMATIC SQL TUNING" (Part I) [Dezembro 2014]
Por Joel Pérez, Karan Dodwal e Flávio Soares
Nesta primeira parte, vamos introduzir os conceitos básicos para entender o contexto para o “SQL Tuning” do licenciado "Oracle Tuning Pack".

Índice de bitmap x índice de árvore B: Qual e quando usar? [Dezembro 2014]
Por Vivek Sharma
Neste artigo irei demonstrar bem como usar cada índice pode ter grande influência no desempenho.

JSON e o Oracle Database 12c [Dezembro 2014]
Por Alex Zaballa
No Oracle Database 12c foi adicionado o suporte nativo ao JavaScript Object Notation (JSON), uma tecnologia nova muito utilizado como uma alternativa ao XML.

Clonando usuários utilizando DBLink de Loopback [Novembro 2014]
Por Rodrigo Jorge
Nesse artigo, iremos tratar uma situação muito comum em que o DBA recebe a tarefa de efetuar uma clonagem de um usuário no próprio Banco de Dados, mas com um username diferente.

Dois novos recursos do Oracle Data Pump 12c – Parte 2 [Setembro 2014]
Por Alex Zaballa
Dando continuidade ao artigo sobre os novos recursos do Oracle Data Pump 12c.

Oracle Database 12c: Colunas Invisíveis. [Junho 2014]
Por Alex Zaballa e Daniel Da Meda
Neste artigo trata novas características do Oracle Database 12c que você deveria saber para salvar tempo e melhorar o seu trabalho com colunas.

Otimização de comandos DDL [Junho 2014]
Por Mohamed Houri e Alex Zaballa
Neste artigo trata uma nova forma de otimização para DDLs: atribuir um valor default ao mesmo tempo que adiciona uma coluna.

Extraindo comando DDL com o pacote DBMS_METADATA [Maio 2014]
Por Eduardo Legatti
Neste artigo irei apenas demonstrar através de exemplos práticos, como extrair comandos DDL's de criação de alguns objetos, não só invocando algumas funções do pacote DBMS_METADATA.

Interval Partitioning. Abordando um conceito de particionamento por intervalo do Oracle Database. [Abril 2014]
Por Eduardo Legatti
Neste artigo irei demonstrar um novo conceito de particionamento de tabelas introduzido no Oracle 11g que automatiza a criação de novas partições por uma determinada faixa ou intervalo (RANGE), de forma que o DBA não precise mais se preocupar em criar novas partições a todo tempo.

Um pouco do Flashback Versions Query e do Flashback Transaction Query [Abril 2014]
Por Eduardo Legatti
A funcionalidade do recurso Flashback Query disponível desde a versão Oracle 9i foi aperfeiçoada no Oracle 10g para incluir dois novos tipos de consultas: Flashback Versions Query e Flashback Transaction Query.

Renomear ou mover datafiles de forma online com Oracle Database 12C [Abril 2014]
Por Alex Zaballa
Antes do Oracle Database 12c, renomear ou mover datafiles sempre foi uma tarefa offline. Agora é possível fazer tudo isso enquanto os usuários acessam o datafile, ou seja, de forma online e com um único comando.

DBMS_PARALLEL_EXECUTE - BY ROWID [Março 2014]
Por Regis Aparecido de Araujo
Neste artigo, iremos falar sobre a package DBMS_PARALLEL_EXECUTE, que foi implementada no Oracle 11g. Está package permite alterar registros de uma tabela de forma incremental e em paralelo.

Pivot e Unpivot: Uma das principais características de Oracle Database [Janeiro 2014]
Por Arup Nanda
Apresente informações em um relatório com referências cruzadas com formato de planilha eletrônica a partir de qualquer tabela relacional usando código SQL simples, e armazene dados de uma tabela com referências cruzadas em uma tabela relacional.

Duplicate Database Skip Tablespace [Janeiro 2014]
Por Regis Aparecido de Araujo
Neste artigo será apresentado uma forma de realizar um duplicate database descartando algumas tablespaces.

Truncate Cascade – 12c [Janeiro 2014]
Por Alex Zaballa
No Oracle Database 12c, existe uma nova opção para o comando TRUNCATE, o CASCADE.

Queryable Patch Inventory – 12c [Janeiro 2014]
Por Alex Zaballa
No Oracle Database 12c, existe a possibilidade de acessar as informações do Oracle Inventory através de comandos SQL e PL/SQL, utilizando a package DBMS_QOPATCH.

Capturando erros DML/DDL gerados pelas sessões: Um pouco da trigger de sistema AFTER SERVERERROR [Janeiro 2014]
Por Eduardo Legatti
Para quem é aficionado em auditoria de banco de dados, com certeza já deve ter ouvido falar do gatilho de evento de sistema chamado SERVERERROR. Esta trigger de sistema é capaz de capturar erros gerados pelas instruções SQL executadas na sessões que estão atualmente conectadas no banco de dados Oracle.

Dois novos recursos do Oracle Data Pump 12c [Dezembro 2013]
Por Alex Zaballa
Oracle Data Pump é uma alternativa nas operações de exportação/importação dos dados, introduzido na versão 10G do banco de dados Oracle, mais rápida e flexível aos tradicionais EXP e IMP, que foram muito utilizados nas versões anteriores do Oracle Database.

Enviando e-mails com PL/SQL em Bancos de Dados Oracle - Parte 2 [Outubro 2013]
Por Fabio Prado
Dando continuidade ao artigo Enviando e-mails com PL/SQL em Bancos de Dados Oracle, irei compartilhar nesta 2a. parte, uma package chamada PKG_ENVIA_EMAIL, que eu desenvolvi para facilitar o trabalho de envio de e-mails com ou sem anexo. Essa package internamente utiliza a package UTL_MAIL para enviar mensagens sem anexo e a package UTL_SMTP para enviar mensagens com anexo do tipo texto.

LAST_DDL_TIME vs TIMESTAMP nas views DBA/ALL/USER_OBJECTS. Tem diferença? [Julho 2013]
Por Eduardo Legatti
Não é raro muita gente confundir essas duas colunas existentes nas views de dicionário de dados DBA/ALL/USER_OBJECTS. Afinal, qual é a diferença entre elas? Quando é que a informação de data e horário de uma é atualizada e da outra não? Pois bem, vamos então a alguns exemplos práticos de forma a demonstrar essa diferença.

Enviando e-mails com PL/SQL em Bancos de Dados Oracle [Junho 2013]
Por Fabio Prado
Este artigo é a 1ª parte (1 de 2 partes) de um artigo em que vou compartilhar conhecimentos gerais sobre como enviar e-mails a partir de um SGBD Oracle e mostrarei como evitar os principais problemas que você poderá encontrar tentando realizar esta tarefa.

Consumindo classes JAVA dentro de um Banco de Dados Oracle [Maio 2013]
Por Fabio Prado
No artigo apresentaremos um recurso muito interessante e pouco conhecido no Oracle Database, que permite consumir classes desenvolvidas em JAVA dentro de um Banco de Dados (BD) Oracle.

Aplicando arquivos de redo log arquivados em um cold backup [Fevereiro 2013]
Por Eduardo Legatti
neste artigo irei simular a aplicação de todos os arquivos de redo log arquivados criados após a realização de um cold backup, nos arquivos de banco de dados restaurados do próprio cold backup.

READ ONLY table. Abordando uma nova funcionalidade do Oracle 11g [Outubro 2012]
Por Eduardo Legatti
Nas versões anteriores ao Oracle 11g, para criarmos uma tabela somente leitura teríamos que usar um dos métodos mencionados acima, mas agora poderemos utilizar a facilidade do comando ALTER TABLE que foi aprimorado no Oracle 11g para permitir alterar o estado de uma tabela do modo READ WRITE para o modo READ ONLY e vice versa.

Extendendo o otimizador do oracle 11g para obter estatísticas de funções pipelined [Julho 2012]
Por Daniela Petruzalek
A idéia deste artigo surgiu a partir de um problema clássico: qual a melhor forma de tratar uma lista de valores (ex: produtos, situações, tipos, classes, etc) passada por string para uma stored procedure ou função que por sua vez necessita tratar estas situações em querys SQL.

Aumentando a performance de procedimentos através da redução de trocas de contexto [Julho 2012]
Por Daniela Petruzalek
O objetivo deste artigo é apresentar algumas técnicas para melhoria de performance dentro do escopo do profissional desenvolvedor, através da redução de trocas de contexto entre SQL e PL/SQL.

Otimizando operações DML com o uso de FORALL [Julho 2012]
Por Daniela Petruzalek
No artigo anterior apresentamos o fenômeno de troca de contextos e o seu impacto no tempo de execução de querys e blocos PL/SQL. O objetivo deste artigo é expandir este tema, tratando das trocas de contexto relativas a operações DML em blocos PL/SQL e as respectivas técnicas para sua otimização.

Introdução ao tipo de dado TIMESTAMP e suas variações [Fevereiro 2012]
Por Eduardo Legatti
O tipo de dado DATE do Oracle é um tipo especial capaz de armazenar datas que vão de 4712 a.C. a 9999 d.C, mas além de armazenar informações de século, ano, mês e dia, o mesmo também é capaz de armazenar informações de hora, minuto e segundo.

Em Tuning, Planejamento e Contextos [Março 2011 ] Inglês
Por Tom Kyte
Técnicos Modelos de Dados, parágrafo aviões particiones y SQL.

Melhorando o desempenho dos aplicativos [Março-2009]
Por Sue Harper
Gerencie e ajuste aplicativos Oracle Application Express com o Oracle SQL Developer.

Baselines e melhores planos [Março-2009 ]
Por Arup Nanda
Use o gerenciamento de planos de SQL do Banco de Dados Oracle 11g para otimizar os planos de execução.

Sobre o certo e o errado [Março-2009 ]
Por Tom Kyte
Nosso especialista em tecnologia verifica a documentação e testa as respostas.

Documentação, monitoração e gerenciamento [Junho-2008 ]
Por Sue Harper
Tire proveito dos novos recursos do Oracle SQL Developer 1.5.