Segunda palestra do Tom Kyte: EFFECTIVE PL/SQL
* Não fazer select * , pois o PLSQL está em conexão com uma série de linguagens, e isso pode causar problemas de segurança OU mesmo crash.
* Exemplo: SQL datatypes são diferentes dos do JAVA.
* Usar BIND ! Fica no cache, fica rápido... Usar o mesmo em outra linguagens, nem sempre oo BIND é feito corretamente.
"Escreva tanto código quanto for necessário, mas o mínimo que puder."
"More code = more bugs. Less code = less bugs"
"Use SQL estático, não dinâmico" (gera uma série de benefícios, como atualização do dicionário de dados, dependências, etc)
Use o SQL, não apenas "use" (de qualquer forma).
Mau uso:
http://thedailywtf.com/Articles/A-Confu ... CTion.aspx
USAR BULK:
* Quando você le dados da base E você tem que mandar de volta.
não USAR:
* Apenas para trazer dados do banco.
Use cursor Implícito !
Use SQL quando pode, em vez de cursor.
CUIDADO COM:
"O criador do PLSQL me perguntou uma vez: Quais são as 3 coisas que você colocaria no PLSQL? Eu pensei e depois de um tempo eu disse: "eu não queria colocar nada, eu queria tirar 3 coisas":
* WHEN OTHERS
* AUTONOMOUS TRANSATIONS
* TRIGGERS
http://log4plsql.sourceforge.net/ - Remote debug
PERGUNTA:
* Quando usar HINTS e alterar as regras do otimizador?
"Use hints pra dar mais informação ao otimizador" --> bons hints.
Em vez dizer COMO o otimziador deve trabalhar, como USE_NL, ou INDEX, muitas vezes um "FIRST_ROWS" é o que deveria ter sido usado. (assim mostra o que você espera) e deixe o otimizador fazer sua parte.