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 »

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 »

jan 072015
 

Não tem como dizer que a vida do DBA não é cheio de desafios.

Que tal uma aplicação que gera muitos locks ? É fácil, identificar o motivo do lock na aplicação e alterá-la.
Mas o que dizer se você não tiver o código fonte ou então caso seja um produto pronto ?
Se for um produto, talvez de para apelar para o fornecedor, mas o que dizer se ele for backlevel ?

Nesse caso, não tem muito o que fazer…

Mas no cenário que vivenciei, os locks tinham uma particularidade, a sessão da aplicação deixava em lock outra sessão da própria aplicação, e ela depois ficava em idle indefinidamente.

O que poderia ser feito ? Continue reading »

set 052014
 

Embora hoje em dia Storage não seja mais tão custoso, metas para diminuir a sua utilização sempre são direcionadas ao DBA.

Mas como diminuir utilização em disco ?
Ter um processo regular de expurgo é fundamental.

Mas se voce não tiver mais dados para apagar e tiver um monte de indices não utilizados ? Como saber quais você pode apagar ? Continue reading »