Re: [oracle_br] RE: Tunning de Queries

2014-02-18 Por tôpico Saulo Brito
Calma gente .. tem desenvolvedor na lista (eu) que gosta de escrever
queries com qualidade (pelo menos tento).




2014-02-17 20:14 GMT-03:00 Roland Martins dadim...@yahoo.com.br:



 Rapaz, o que vemos por aí é a mesma coisa: o desenvolvedor escreve, quem
 tuna é o DBA. Visão errada esta, vários desenvolvedores sabem ler um
 plano, questionar estatísticas - de objetos e de sistema, histogramas,
 influenciar o CBO com hints, mas a qualidade de muitos desenvolvedores é
 bem ruim (eles ficam ali, escrevendo queries, mexendo nos celulares, sites
 de compras, viagens internacionais... e o desempenho da query ? Ah, a gente
 manda pros DBAs, aos 47 do segundo tempo, eles resolvem - e nem sempre do
 melhor jeito), isso quando o problema já não aparece direto em produção
 (tem lugares que funciona assim, todos sabemos) e aí é você que tem o
 pepino pra descascar.

 Mas, como diz aquele provérbio chinês, é melhor acender uma vela que
 queixar-se da escuridão.

 Chiappa está correto. Adiciono o que diz Thomas Kyte (na época do 8i
 Release 3, mas ainda atual):

 Here is a short extract from a book I am working on.  The short answer is
 if you want a 10 step guide to tuning a query, buy a piece of software.
 You are not needed in this process, anyone can put a query in, get a query
 out and run it to see if it is faster.
 There are tons of these tools on the market.  They work using rules
 (heuristics) and can tune maybe 1% of the problem queries out there.  They
 APPEAR to be able to tune a much larger percent but that is only because
 the people using these tools never look at the outcome -- hence they
 continue to make the same basic mistakes over and over and over.

 If you want to really be aboe to tune the other 99% of the queries out
 there, knowledge of lots of stuff -- physical storage mechanisms, access
 paths, how the optimizer works - thats the only way.

 of course, read:


 http://download-west.oracle.com/docs/cd/A87860_01/doc/server.817/a76965/toc.htm

 from cover to cover and


 http://download-west.oracle.com/docs/cd/A87860_01/doc/server.817/a76992/toc.htm

 as well

 1.1 Efficient SQL

 This was probably the hardest part of the book to write - this chapter.
  That is not because the material is all that complex, rather because I
 know what people want - and I know what can be delivered.  What people
 want:  The 10 step process by which you can tune any query.  What can be
 delivered:  Knowledge about how queries are processed, knowledge you can
 use and apply day to day as you develop them.

 Think about it for a moment.  If there were a 10 step or even 1,000,000
 step process by which any query can be tuned (or even X% of queries for
 that matter), we would write a program to do it.  Oh don't get me wrong,
 there are many programs that actually try to do this - Oracle Enterprise
 Manager with its tuning pack, SQL Navigator and others.  What they do is
 primarily recommend indexing schemes to tune a query, suggest materialized
 views, offer to add hints to the query to try other access plans.  They
 show you different query plans for the same statement and allow you to pick
 one.  They offer rules of thumb (what I generally call ROT since the
 acronym and the word is maps to are so appropriate for each other) SQL
 optimizations - which if they were universally applicable - the optimizer
 would do it as a matter of fact.  In fact, the cost based optimizer does
 that already - it rewrites our queries all of the time.  These tuning tools
 use a very limited set of rules that sometimes can suggest that index or
 set of indexes you really should have thought of during your design.

 I'll close this idea out with this thought - if there were an N step
 process to tuning a query, to writing efficient SQL - the optimizer would
 incorporate it all and we would not be having a discussion about this topic
 at all.  It is like the search for the holy grail - maybe someday the
 software will be sophisticated enough to be perfect in this regards, it
 will be able to take our SQL, understand the question being asked and
 process the question - rather then syntax.

 To me - writing efficient SQL requires a couple of things:

 oKnowledge of the physical organization of what I'm asked to query
 against.  That is - the schema.  Knowledge that the physical organization
 was actually designed in order to help me answer my frequently asked
 questions (refer back to the chapter on designing an efficient schema for
 advice in that arena)

 oKnowledge of what the database is capable of doing.  If I did not
 know about skip scan indexes and what they did (we'll cover them below) -
 I might look at a schema and say ah hah, we are missing an index when in
 fact we are not.

 oKnowledge of all of the intricacies of SQL - from the lowly WHERE
 clause on up to analytics and psuedo columns.  Knowledge of what using a
 particular construct will do to my runtime processing.

 oAnd most importantly of all - a 

[oracle_br] OCP - Usando o Scheduler para automatizar tarefas

2014-02-18 Por tôpico Milton Bastos Henriquis Jr.
Bom dia amigos!

Acabei de publicar mais um artigo pra quem deseja estudar pra OCP.

http://certificacaobd.com.br/2014/02/18/oracle-ocp-11g-capitulo-14-usando-o-scheduler-para-automatizacao-de-tarefas/

Quem quiser ler os resumos anteriores, tanto da prova de OCP quanto de
outras provas de certificação Oracle, pode acessar o link:

http://certificacaobd.com.br/resumos-certificacao-oracle/


Abraço!

Miltão
Equipe Certificação BD


Re: [oracle_br] Problema com DUPLICATE

2014-02-18 Por tôpico ederson2001br
Leonardo, 

 Como vc resolveu o problema do arquivo BCT?, pois segundo o manual, ele não 
faz parte do backup, tem que ser recriado. Vc desabilitou o BCT e fez novo 
backup?
 

 Sobre este problema do not restored from a sufficiently old backup, acontece 
quando dá open resetlogs noredo em recover incompleto, quando não tem os 
redologfile (tb não vai no backup). No caso de Duplicate, se colocar o NOREDO 
só dá certo se o banco foi backupeado em MOUNT? Fiquei na dúvida agora.
 

 Sempre que vou duplicar, eu prefiro usar um backup de produção já feito, pois 
eu aproveito para validar o backup de produção (rodado automaticamente). 
Então eu transfiro os arquivos para o novo servidor e rodo um catalog.
 Veja este doc, nele tem as sintaxes para operações de duplicate onde é 
necessário modificar alguns parâmetros.
 
http://docs.oracle.com/cd/E11882_01/backup.112/e10643/rcmsynta020.htm#RCMRF90152
 
http://docs.oracle.com/cd/E11882_01/backup.112/e10643/rcmsynta020.htm#RCMRF90152

 

 

 Ederson Elias
 DBA Oracle
 http://br.linkedin.com/pub/ederson-elias/24/8b/8b0
 
 Labor improbus omnia vincit



Re: [oracle_br] RE: data guard + flashback

2014-02-18 Por tôpico jlchiappa
Tudo jóia ? Só para Referência de quem acompanhou a thread, realmente no 
database 11g temos a moleza do Snapshot Standby, mas esse cara nada mais é do 
que um Automatizador - pra quem está na versão 10g, eu tinha comigo que era 
Perfeitamente Possível se fazer o mesmo, simulando a feature, via um DEFER da 
aplicação de archives no primary, desabilitar o standby, abrir em read/write 
(como um banco Normal, que nem sabe que já foi um dia standby) , e depois dos 
testes todos feitos, voltar o database até o exato SCN que estava, reabrir em 
modo standby e aplicar os archives pendentes  : 
http://jaffardba.blogspot.com.br/2007/12/simulating-11g-snapshot-standby.html 
tem um exemplo. Eu pra variar Ainda Não Consegui arranjar o tempo pra fazer o 
teste por mim mesmo, mas em tese, falando pelos conceitos, não teria porque não 
funcionar, DESDE QUE a pessoa tenha espaço em disco suficiente para manter 
todos os archives necessários (no primary) E para poder ter um 
DB_FLASHBACK_RETENTION_TARGET suficiente

 []s
 
   Chiappa

Re: [oracle_br] Problema com DUPLICATE

2014-02-18 Por tôpico Leonardo Rezende
Ederson,

O BCT não dá erro, é apenas um warning. Ele passa tranquilo.

Eu estou fazendo o duplicação com os backups já feitos, totalmente
desconectado da produção. Sem conexão de target, nem de catalog; usando
BACKUP LOCATION para isso.

LRezende


Em 18 de fevereiro de 2014 12:39, ederson200...@yahoo.com.br escreveu:



 Leonardo,

 Como vc resolveu o problema do arquivo BCT?, pois segundo o manual, ele
 não faz parte do backup, tem que ser recriado. Vc desabilitou o BCT e fez
 novo backup?

 Sobre este problema do not restored from a sufficiently old backup,
 acontece quando dá open resetlogs noredo em recover incompleto, quando
 não tem os redologfile (tb não vai no backup). No caso de Duplicate, se
 colocar o NOREDO só dá certo se o banco foi backupeado em MOUNT? Fiquei
 na dúvida agora.

 Sempre que vou duplicar, eu prefiro usar um backup de produção já feito,
 pois eu aproveito para validar o backup de produção (rodado
 automaticamente). Então eu transfiro os arquivos para o novo servidor e
 rodo um catalog.
 Veja este doc, nele tem as sintaxes para operações de duplicate onde é
 necessário modificar alguns parâmetros.

 http://docs.oracle.com/cd/E11882_01/backup.112/e10643/rcmsynta020.htm#RCMRF90152


 Ederson Elias
 DBA Oracle
 http://br.linkedin.com/pub/ederson-elias/24/8b/8b0
 
 Labor improbus omnia vincit

  



Re: [oracle_br] RE: Tunning de Queries

2014-02-18 Por tôpico josir
Sensacional como sempre Chiappa! Eu sou desenvolvedor e na minha equipe TODOS 
tem que escrever boas queries, se preocupando se a query não vai fazer FTS, não 
permitindo que o frontend monte queries SEM filtros para campos com índice, sem 
estar parametrizada (strings embutidas na query) e etc. Uma parte do meu 
trabalho é justamente de controle de qualidade, verificando se alguém dá 
bobeira mas como o pessoal é bem treinado, raramento pego algum problema.
 Com isso, são raros os casos aqui que o DBA precisa apagar incêndio...

 Saudações e parabéns pelos excelentes comentários!!
 Josir


Re: [oracle_br] RE: Tunning de Queries

2014-02-18 Por tôpico Andre Santos
Pessoal

Acho que o caminho é este que o Josir comentou: treinamento/capacitação da
equipe.

Candiuru, se você puder, prepare um treinamento... inicialmente coisa
básica: visão geral da arquitetura do banco e erros mais comuns em
consultas (SQL) e modelagem.
A partir daí, os desenvolvedores começarão a entender as causas dos
problemas e, provavelmente, haverá um diálogo melhor entre desenvs. e DBA.

Quando não se conhece algo, muitas vezes, há uma postura de negação...
com BD, há desenvolvedores dizem é só repositório (aí começam os
problemas...).
Com uma apresentação/treinamento, você pode trazer os desenvolvedores para
o lado do banco de dados.

[ ]'s

André Santos




Em 18 de fevereiro de 2014 14:11, jo...@globo.com escreveu:



 Sensacional como sempre Chiappa!
 Eu sou desenvolvedor e na minha equipe TODOS tem que escrever boas
 queries, se preocupando se a query não vai fazer FTS, não permitindo que o
 frontend monte queries SEM filtros para campos com índice, sem estar
 parametrizada (strings embutidas na query) e etc. Uma parte do meu trabalho
 é justamente de controle de qualidade, verificando se alguém dá bobeira mas
 como o pessoal é bem treinado, raramento pego algum problema.
 Com isso, são raros os casos aqui que o DBA precisa apagar incêndio...
 Saudações e parabéns pelos excelentes comentários!!
 Josir

  



Re: [oracle_br] RE: Tunning de Queries

2014-02-18 Por tôpico angelo
Poxa,

Sua empresa é a empresa dos sonhos então.. rs

Isso é resultado de conscientização, cultura mesmo, do vamos fazer mas
vamos fazer a coisa certa
em muitos lugares, as pessoas ignoram o básico, o minimo necessario

Só se pode ter medo daquilo do que não se conhece. por isso a postura de
negação, como o outro colega comentou





2014-02-18 14:11 GMT-03:00 jo...@globo.com:



 Sensacional como sempre Chiappa!
 Eu sou desenvolvedor e na minha equipe TODOS tem que escrever boas
 queries, se preocupando se a query não vai fazer FTS, não permitindo que o
 frontend monte queries SEM filtros para campos com índice, sem estar
 parametrizada (strings embutidas na query) e etc. Uma parte do meu trabalho
 é justamente de controle de qualidade, verificando se alguém dá bobeira mas
 como o pessoal é bem treinado, raramento pego algum problema.
 Com isso, são raros os casos aqui que o DBA precisa apagar incêndio...
 Saudações e parabéns pelos excelentes comentários!!
 Josir