Jefferson de Almeida Costa

sql 0

Multicolunas em cláusula IN

A boa prática é fundamental para qualquer tipo de programação. E boa prática abrange uma infinidade de ações e métodos para tornar seu código mais legível, enxuto, performático e com fácil manutenibilidade. E ainda, tudo isso pode ser visto de forma diferente por cada pessoa. O que é fácil para...

pl/sql 0

Capturando Erros em DML’s

É de extrema necessidade se precaver dos erros que podem ocorrer em cargas de dados, transformando-os e/ou sanitizando-os para uma melhor qualidade dos registros. Mas ora ou outra surgem linhas que trazem alguma informação incompatível com o tipo de dados de alguma coluna da tabela. É aí que está o...

pl/sql 0

Implicit Fetch Call Bulk Mode

Há um tempo atrás passei por uma situação que me fez escrever este artigo. Estava, eu, incumbido de alterar uma procedure para ganho de performance de um processo batch. Como uma primeira ação, iniciei substituindo os FOR LOOP, os quais aparentavam estarem sendo processados row by row, por BULK COLLECT....

pl/sql 1

Short Circuit: Uma boa prática

 Em diversas linguagens de programação – para as boas práticas em condicionantes, estrutura de repetições ou em outras validações – recomenda-se testar primeiro as opções que possuem mais chance de ocorrerem e que são menos custosas em termo de processamento. Isto evita que outras validações sejam efetuadas sem necessidade,...

pl/sql 0

Forall e Bulk Collect

Agilidade é a palavra do momento e tempo é dinheiro. É neste sentido que os bancos de dados sofrem, pois são sempre as mesmas histórias: o banco tá lento, nada funciona, liga para o DBA. É certo, também, que grande parte das implementações é testada utilizando uma massa de dados...

0

A Culpa é do DBA

Muitas vezes nos utilizamos do efeito Dunning-Kruger. Ou seja, acreditamos que a solução ou o problema está em uma área que não temos tanto domínio ou não conhecemos, sem mesmo averiguar antes se não seriamos os verdadeiros donos ou fatores para resolução. A velha história: a culpa ou o problema...

pl/sql 0

Result Cache em Functions

Quem gosta de fazer algo que já fez outrora e que já sabe o resultado? Eu não. E acredito que o banco de dados Oracle sempre esteve incomodado em repetir uma ação que ele já sabe o retorno. Até por isso, na versão 11 release 1 foi disponibilizado o RESULT_CACHE...

sql 0

Multitable Inserts Incondicionais e Condicionais

 Como todos sabem em desenvolvimento um trecho de código pode ser escrito de diversas formas e com os mesmos resultados. Contudo, sempre gosto de utilizar como base em uma implementação o menor números de instrução possíveis para efetuar um processamento. Ao final de cada codificação efetuo a refatoração para...

pl/sql 0

Hints Append e Append_Values

O banco de dados trabalha “tapando buracos”. Ou seja, sempre tenta utilizar-se dos espaços disponíveis de exclusões de registros passados de uma tabela, realimentando estes endereços com um novo dado inserido. Ao analisarmos a sangue frio vê-se que isto tem um custo, haja vista da necessidade de ao longo da...

pl/sql 0

Alterando a Ordem de Execução de Triggers

O Trigger é a melhor e a pior feature do banco de dados. É a melhor, pois permite efetuar diversas validações ou aplicação de regras de negócios complexas que as constraints não conseguiriam implementar. É a pior, pois muitos apenas se lembram de triggers após a alteração, deleção ou inserção...