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 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
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
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