fev 132016
 

A maior parte dos bancos de dados existentes no mercado possuem uma funcionalidade chamada Identity, basicamente um Auto incremento para campos numéricos.

Para implementarmos tal funcionalidade no Oracle 11g e anteriores era necessário usar uma sequence e chamar seu método “next_val” por meio de uma trigger, ou chamando diretamente no comando (eg. insert). Mas não havia nada automático.

Temos novidades no 12c ?

Continue reading »

jan 252016
 

Se tentarmos criar um índice numa coluna já indexada no Oracle 11g vamos receber o seguinte erro:

ORA-01408: such column list already indexed

No Oracle 12c isso não acontece.

O 12c trouxe inúmeras features e uma delas é a possibilidade de criar mais de um índice numa mesma coluna.

Mas por que alguém faria isso ?


Disponibilidade e performance.

Como assim ?

Continue reading »

dez 312015
 

Como temos dito em vários posts, o Oracle tem um poderoso otimizador de consultas, e dentre suas inúmeras funcionalidades, ele também é capaz de reescrever uma consulta para torná-la mais performática.

Ele tem várias técnicas de reescrita que eu pretendo descrever em outros posts.

Mas hoje eu gostaria de mostrar como verificar se um comando foi reescrito pelo Oracle, e como ficou o comando final.

Continue reading »

dez 082015
 

No último post falei que era preciso aplicar um patch para resolver o erro “error in invoking target “agent nmhs” of makefile “ins_emagent.mk”

Mas ao aplicá-lo, ou mesmo ao aplicar outro patch, talvez você receba vários warnings:

OPatch found the word "warning" in the stderr of the make command.
Please look at this stderr. You can re-run this make command.
Stderr output:
ins_emagent.mk:113: warning: overriding recipe for target `nmosudo'
ins_emagent.mk:52: warning: ignoring old recipe for target `nmosudo'
/u01/app/oracle/product/11.2.0.4/db_1/sysman/lib/ins_emagent.mk:113: warning: overriding recipe for target `nmosudo'
/u01/app/oracle/product/11.2.0.4/db_1/sysman/lib/ins_emagent.mk:52: warning: ignoring old recipe for target `nmosudo'

Podemos simplesmente ignorá-los ?

Continue reading »

mar 132015
 

Recebemos uma questionamento interessante.

Como não permitir que o usuário mude sua própria senha ?

Confesso que isso é um pouco estranho, mas dependendo de como a aplicação foi feita pode fazer sentido.

Pode parecer brincadeira, mas já vi casos onde o time de aplicação alterou a senha do usuário de banco em pleno horário comercial ! Foi sem querer ? Achavam que estavam em desenvolvimento ? Seja qual for a razão, tivemos sérios impactos. Continue reading »

fev 152015
 

Já rodou aquele count distinct que demorou um tempão ?

O uso da função count (distinct expr) não é só útil em alguns relatórios, como é muito importante para definir a cardinalidade de uma tabela e melhorar a performance de uma consulta.

Mas existem counts que podem levar muito tempo para rodarem, além de dependendo do caso, até trazerem algum tipo de impacto no ambiente.

Existe alguma alternativa ? Continue reading »