RES: [oracle_br] SQL Tunning

2013-02-15 Por tôpico Vitor Jr.
Concordo... especialmente pra tuning, onde envolva view, depois tem que
ficar analisando o código de cada uma pra ver onde tá a PORRA do gargalo...
isso é preguiça criar esse monte de views... rsrsrsrsrs

-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
nome de angelo
Enviada em: sexta-feira, 15 de fevereiro de 2013 17:22
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] SQL Tunning

que bom que resolveu, mas você faz Join com uma view.

Essa view  (me refiro ao codigo fonte dela)  ao executar a query para
criá-la, também faz join com mais alguém, ou acessa outra view dentro dela?
 De inicio, minha pergunta pode parecer hilária, cretina ou sem lógica, mas
é um absurdo que algumas pessoas cometem e ainda acham que tá fazendo
certo... sem querer se cria uma cadeia de views... Já vi isso acontecer
varias vezes... e em determinados momentos ficar muito pesado e a galera
depois fica batendo cabeça Uma view que acessa outra view para criar a
propria view...alegando que não dá pra fazer diferente...  bem como nessas
views ainda tem Unions, Unions all... fica uma cangalha de balão enorme no
final...

Até que ponto isso é saudável, pergunto eu?


2013/2/15 Rafael Mendonca raffaell.t...@yahoo.com

 **


 Pessoal, consegui encontrar o problema. Na view vw_produtos_tabela a 
 coluna cod_prod está como NUMBER, enquanto as outras está como 
 VARCHAR2, na hora do JOIN ele faz uma conversao implicita dificultando 
 o desempenho da query, mudei para varchar2 e agora está muito rápido, 
 obrigado a todos que colaboraram.


 
 De: Eduardo Rodrigues oraedua...@gmail.com
 Para: oracle_br@yahoogrupos.com.br
 Enviadas: Sexta-feira, 15 de Fevereiro de 2013 16:42

 Assunto: Re: [oracle_br] SQL Tunning



 Rafael me desculpe pela sintaxe, não consegui testar, mas acredito que 
 faltou as após a tabela, fica assim:

 WITH produto_loja as

 Veja se consegue mudar sua query para retirar o distinct, ele não é 
 performático.

 *Att.*
 *Eduardo Rodrigues*

 Em 15 de fevereiro de 2013 15:30, Rafael Mendonca
 raffaell.t...@yahoo.comescreveu:

  **
 
 
  Eduardo, obrigado pela ajuda, como nao tenho experiencia com WITH 
  queria saber como devo proceder, deu esse erro aqui:
 
  ORA-32039: A cláusula WITH recursiva deve ter a lista de apelidos de
 coluna
 
  
  De: Eduardo Rodrigues oraedua...@gmail.com
  Para: oracle_br@yahoogrupos.com.br
  Enviadas: Sexta-feira, 15 de Fevereiro de 2013 16:07
 
  Assunto: Re: [oracle_br] SQL Tunning
 
 
 
  Mais ou menos assim:
 
  WITH produto_loja
  (SELECT MIN(pl.val_preco_venda) AS precomin_prod_sem_tabela,
  MAX(pl.val_preco_venda) AS precomax_prod_sem_tabela FROM 
  produto_loja pl) SELECT DISTINCT me.cod_prod codigo_produto, 
  vw.codigo_planilha, vw.percentual_desconto, vw.valor_desconto, 
  vw.ind_acesso, vw.descricao_completa, vw.preco_min, vw.preco_max, 
  me.codigo_automacao, pl.precomin_prod_sem_tabela, 
  pl.precomax_prod_sem_tabela FROM multipla_embl me LEFT OUTER JOIN 
  vw_produtos_tabela vw ON (vw.codigo_produto = me.cod_prod) LEFT 
  OUTER JOIN produto_loja pl ON pl.cod_prod = me.cod_prod WHERE 
  me.cod_prod = :1 ORDER BY me.cod_prod, me.codigo_automacao;
 
  *Att.*
  *Eduardo Rodrigues*
 
 
  Em 15 de fevereiro de 2013 15:01, Eduardo Rodrigues
  oraedua...@gmail.comescreveu:
 
   Rafael tenta usar o with para consulta da tabela produto_loja.
  
   *Att.*
   *Eduardo Rodrigues*
 
  
  
   Em 15 de fevereiro de 2013 14:54, Rafael Mendonca
  raffaell.t...@yahoo.com
escreveu:
  
   **
 
  
  
   Milton, mas existe uma cláusula where fazendo o JOIN.
  
   Rodrigo, existe sim.
  
   A coluna cod_prod tanto na tabela PRODUTO_LOJA como na tabela 
   multipla_embl são indexadas
  
   
   De: Rodrigo Mufalani rodr...@mufalani.com.br
   Para: oracle_br@yahoogrupos.com.br
   Enviadas: Sexta-feira, 15 de Fevereiro de 2013 15:49
   Assunto: Re: [oracle_br] SQL Tunning
  
  
  
  
   Existe algum indice na tabela produto_loja para as colunas usadas?
   Comece por ai!!!
  
   Enviado por Samsung Mobile
  
    Mensagem original  De : Rafael Mendonca 
   raffaell.t...@yahoo.com
   Data:
   Para: oracle_br@yahoogrupos.com.br
   Assunto: [oracle_br] SQL Tunning
  
   Pessoal, boa tarde.
   Estou com um problema de desempenho no sql abaixo:
  
   http://nopaste.dk/p20777
  
   Segue o plano de execução:
  
   http://nopaste.dk/p20779
  
   Existe algo nessa query que eu possa modificar para evitar o 
   TABLE
  ACCESS
   FULL?
  
   [As partes desta mensagem que não continham texto foram 
   removidas]
  
   [As partes desta mensagem que não continham texto foram 
   removidas]
  
   [As partes desta mensagem que não continham texto foram 
   removidas]
  
  
  
  
  
 
  [As partes desta mensagem que não continham texto foram removidas]
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 

 [As partes 

Re: RES: [oracle_br] SQL Tunning

2013-02-15 Por tôpico Rafael Mendonca
Angelo, na view se faz JOIN com outras tabelas sim, mas não contra outras 
views. valeu ai galera.



 De: Vitor Jr. vitorj...@gmail.com
Para: oracle_br@yahoogrupos.com.br 
Enviadas: Sexta-feira, 15 de Fevereiro de 2013 17:23
Assunto: RES: [oracle_br] SQL Tunning
 

  
Concordo... especialmente pra tuning, onde envolva view, depois tem que
ficar analisando o código de cada uma pra ver onde tá a PORRA do gargalo...
isso é preguiça criar esse monte de views... rsrsrsrsrs

-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
nome de angelo
Enviada em: sexta-feira, 15 de fevereiro de 2013 17:22
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] SQL Tunning

que bom que resolveu, mas você faz Join com uma view.

Essa view  (me refiro ao codigo fonte dela)  ao executar a query para
criá-la, também faz join com mais alguém, ou acessa outra view dentro dela?
De inicio, minha pergunta pode parecer hilária, cretina ou sem lógica, mas
é um absurdo que algumas pessoas cometem e ainda acham que tá fazendo
certo... sem querer se cria uma cadeia de views... Já vi isso acontecer
varias vezes... e em determinados momentos ficar muito pesado e a galera
depois fica batendo cabeça Uma view que acessa outra view para criar a
propria view...alegando que não dá pra fazer diferente...  bem como nessas
views ainda tem Unions, Unions all... fica uma cangalha de balão enorme no
final...

Até que ponto isso é saudável, pergunto eu?

2013/2/15 Rafael Mendonca raffaell.t...@yahoo.com

 **


 Pessoal, consegui encontrar o problema. Na view vw_produtos_tabela a 
 coluna cod_prod está como NUMBER, enquanto as outras está como 
 VARCHAR2, na hora do JOIN ele faz uma conversao implicita dificultando 
 o desempenho da query, mudei para varchar2 e agora está muito rápido, 
 obrigado a todos que colaboraram.


 
 De: Eduardo Rodrigues oraedua...@gmail.com
 Para: oracle_br@yahoogrupos.com.br
 Enviadas: Sexta-feira, 15 de Fevereiro de 2013 16:42

 Assunto: Re: [oracle_br] SQL Tunning



 Rafael me desculpe pela sintaxe, não consegui testar, mas acredito que 
 faltou as após a tabela, fica assim:

 WITH produto_loja as

 Veja se consegue mudar sua query para retirar o distinct, ele não é 
 performático.

 *Att.*
 *Eduardo Rodrigues*

 Em 15 de fevereiro de 2013 15:30, Rafael Mendonca
 raffaell.t...@yahoo.comescreveu:

  **
 
 
  Eduardo, obrigado pela ajuda, como nao tenho experiencia com WITH 
  queria saber como devo proceder, deu esse erro aqui:
 
  ORA-32039: A cláusula WITH recursiva deve ter a lista de apelidos de
 coluna
 
  
  De: Eduardo Rodrigues oraedua...@gmail.com
  Para: oracle_br@yahoogrupos.com.br
  Enviadas: Sexta-feira, 15 de Fevereiro de 2013 16:07
 
  Assunto: Re: [oracle_br] SQL Tunning
 
 
 
  Mais ou menos assim:
 
  WITH produto_loja
  (SELECT MIN(pl.val_preco_venda) AS precomin_prod_sem_tabela,
  MAX(pl.val_preco_venda) AS precomax_prod_sem_tabela FROM 
  produto_loja pl) SELECT DISTINCT me.cod_prod codigo_produto, 
  vw.codigo_planilha, vw.percentual_desconto, vw.valor_desconto, 
  vw.ind_acesso, vw.descricao_completa, vw.preco_min, vw.preco_max, 
  me.codigo_automacao, pl.precomin_prod_sem_tabela, 
  pl.precomax_prod_sem_tabela FROM multipla_embl me LEFT OUTER JOIN 
  vw_produtos_tabela vw ON (vw.codigo_produto = me.cod_prod) LEFT 
  OUTER JOIN produto_loja pl ON pl.cod_prod = me.cod_prod WHERE 
  me.cod_prod = :1 ORDER BY me.cod_prod, me.codigo_automacao;
 
  *Att.*
  *Eduardo Rodrigues*
 
 
  Em 15 de fevereiro de 2013 15:01, Eduardo Rodrigues
  oraedua...@gmail.comescreveu:
 
   Rafael tenta usar o with para consulta da tabela produto_loja.
  
   *Att.*
   *Eduardo Rodrigues*
 
  
  
   Em 15 de fevereiro de 2013 14:54, Rafael Mendonca
  raffaell.t...@yahoo.com
escreveu:
  
   **
 
  
  
   Milton, mas existe uma cláusula where fazendo o JOIN.
  
   Rodrigo, existe sim.
  
   A coluna cod_prod tanto na tabela PRODUTO_LOJA como na tabela 
   multipla_embl são indexadas
  
   
   De: Rodrigo Mufalani rodr...@mufalani.com.br
   Para: oracle_br@yahoogrupos.com.br
   Enviadas: Sexta-feira, 15 de Fevereiro de 2013 15:49
   Assunto: Re: [oracle_br] SQL Tunning
  
  
  
  
   Existe algum indice na tabela produto_loja para as colunas usadas?
   Comece por ai!!!
  
   Enviado por Samsung Mobile
  
    Mensagem original  De : Rafael Mendonca 
   raffaell.t...@yahoo.com
   Data:
   Para: oracle_br@yahoogrupos.com.br
   Assunto: [oracle_br] SQL Tunning
  
   Pessoal, boa tarde.
   Estou com um problema de desempenho no sql abaixo:
  
   http://nopaste.dk/p20777
  
   Segue o plano de execução:
  
   http://nopaste.dk/p20779
  
   Existe algo nessa query que eu possa modificar para evitar o 
   TABLE
  ACCESS
   FULL?
  
   [As partes desta mensagem que não continham texto foram 
   removidas]
  
   [As partes desta

Re: RES: [oracle_br] SQL Tunning

2013-02-15 Por tôpico J. Laurindo Chiappa
 Pois é, Vítor : quem nos garante que o gargalo REAL não está nos SQLs, nos 
JOINS, lá da VIEW  ?? de repente a gente fica caçando cabelo em pelo de ovo 
aqui no SQL principal, e a lentidão tá lá no SQL escondido da view... Só 
mesmo quem tá com o problema em mãos, conhece o ambiente, pode COMPROVAR ou 
NEGAR isso...

 []s

   Chiappa

--- Em oracle_br@yahoogrupos.com.br, Rafael Mendonca raffaell.ti77@... 
escreveu

 Angelo, na view se faz JOIN com outras tabelas sim, mas não contra outras 
 views. valeu ai galera.
 
 
 
  De: Vitor Jr. vitorjr81@...
 Para: oracle_br@yahoogrupos.com.br 
 Enviadas: Sexta-feira, 15 de Fevereiro de 2013 17:23
 Assunto: RES: [oracle_br] SQL Tunning
  
 
   
 Concordo... especialmente pra tuning, onde envolva view, depois tem que
 ficar analisando o código de cada uma pra ver onde tá a PORRA do gargalo...
 isso é preguiça criar esse monte de views... rsrsrsrsrs
 
 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
 nome de angelo
 Enviada em: sexta-feira, 15 de fevereiro de 2013 17:22
 Para: oracle_br@yahoogrupos.com.br
 Assunto: Re: [oracle_br] SQL Tunning
 
 que bom que resolveu, mas você faz Join com uma view.
 
 Essa view  (me refiro ao codigo fonte dela)  ao executar a query para
 criá-la, também faz join com mais alguém, ou acessa outra view dentro dela?
 De inicio, minha pergunta pode parecer hilária, cretina ou sem lógica, mas
 é um absurdo que algumas pessoas cometem e ainda acham que tá fazendo
 certo... sem querer se cria uma cadeia de views... Já vi isso acontecer
 varias vezes... e em determinados momentos ficar muito pesado e a galera
 depois fica batendo cabeça Uma view que acessa outra view para criar a
 propria view...alegando que não dá pra fazer diferente...  bem como nessas
 views ainda tem Unions, Unions all... fica uma cangalha de balão enorme no
 final...
 
 Até que ponto isso é saudável, pergunto eu?
 
 2013/2/15 Rafael Mendonca raffaell.ti77@...
 
  **
 
 
  Pessoal, consegui encontrar o problema. Na view vw_produtos_tabela a 
  coluna cod_prod está como NUMBER, enquanto as outras está como 
  VARCHAR2, na hora do JOIN ele faz uma conversao implicita dificultando 
  o desempenho da query, mudei para varchar2 e agora está muito rápido, 
  obrigado a todos que colaboraram.
 
 
  
  De: Eduardo Rodrigues oraeduardo@...
  Para: oracle_br@yahoogrupos.com.br
  Enviadas: Sexta-feira, 15 de Fevereiro de 2013 16:42
 
  Assunto: Re: [oracle_br] SQL Tunning
 
 
 
  Rafael me desculpe pela sintaxe, não consegui testar, mas acredito que 
  faltou as após a tabela, fica assim:
 
  WITH produto_loja as
 
  Veja se consegue mudar sua query para retirar o distinct, ele não é 
  performático.
 
  *Att.*
  *Eduardo Rodrigues*
 
  Em 15 de fevereiro de 2013 15:30, Rafael Mendonca
  raffaell.ti77@...escreveu:
 
   **
  
  
   Eduardo, obrigado pela ajuda, como nao tenho experiencia com WITH 
   queria saber como devo proceder, deu esse erro aqui:
  
   ORA-32039: A cláusula WITH recursiva deve ter a lista de apelidos de
  coluna
  
   
   De: Eduardo Rodrigues oraeduardo@...
   Para: oracle_br@yahoogrupos.com.br
   Enviadas: Sexta-feira, 15 de Fevereiro de 2013 16:07
  
   Assunto: Re: [oracle_br] SQL Tunning
  
  
  
   Mais ou menos assim:
  
   WITH produto_loja
   (SELECT MIN(pl.val_preco_venda) AS precomin_prod_sem_tabela,
   MAX(pl.val_preco_venda) AS precomax_prod_sem_tabela FROM 
   produto_loja pl) SELECT DISTINCT me.cod_prod codigo_produto, 
   vw.codigo_planilha, vw.percentual_desconto, vw.valor_desconto, 
   vw.ind_acesso, vw.descricao_completa, vw.preco_min, vw.preco_max, 
   me.codigo_automacao, pl.precomin_prod_sem_tabela, 
   pl.precomax_prod_sem_tabela FROM multipla_embl me LEFT OUTER JOIN 
   vw_produtos_tabela vw ON (vw.codigo_produto = me.cod_prod) LEFT 
   OUTER JOIN produto_loja pl ON pl.cod_prod = me.cod_prod WHERE 
   me.cod_prod = :1 ORDER BY me.cod_prod, me.codigo_automacao;
  
   *Att.*
   *Eduardo Rodrigues*
  
  
   Em 15 de fevereiro de 2013 15:01, Eduardo Rodrigues
   oraeduardo@...escreveu:
  
Rafael tenta usar o with para consulta da tabela produto_loja.
   
*Att.*
*Eduardo Rodrigues*
  
   
   
Em 15 de fevereiro de 2013 14:54, Rafael Mendonca
   raffaell.ti77@...
 escreveu:
   
**
  
   
   
Milton, mas existe uma cláusula where fazendo o JOIN.
   
Rodrigo, existe sim.
   
A coluna cod_prod tanto na tabela PRODUTO_LOJA como na tabela 
multipla_embl são indexadas
   

De: Rodrigo Mufalani rodrigo@...
Para: oracle_br@yahoogrupos.com.br
Enviadas: Sexta-feira, 15 de Fevereiro de 2013 15:49
Assunto: Re: [oracle_br] SQL Tunning
   
   
   
   
Existe algum indice na tabela produto_loja para as colunas usadas?
Comece por ai!!!
   
Enviado por Samsung Mobile
   
 Mensagem original