Olá pessoal,
Tenho uma view criada por um usuário na base de dados. Para essa view foi criado um public synonym e dado grant de execução para outro usuário...
O problema é que, quando executo a consulta com o usuário owner da view, a consulta leva menos de 1 segundo. Já com o outro user, chega a quase 2 minutos.
Alguém tem alguma idéia do que pode estar acontecendo?
Uso Oracle Database 11g Release 11.2.0.3.0
Obrigado
Demora execução VIEW com usuário diferente do owner
-
- Rank: Programador Pleno
- Mensagens: 43
- Registrado em: Ter, 20 Mar 2012 11:37 am
- Localização: Campinas
Leandro L. Miranda
-
- Rank: Programador Pleno
- Mensagens: 43
- Registrado em: Ter, 20 Mar 2012 11:37 am
- Localização: Campinas
Leandro L. Miranda
Triste dizer pessoal.
também não sabia que era possível.. Mas existe diferenças no plano de execução entre os 2 users.
Vou analisar isso com mais calma e volto com mais detalhes...
Vlws..
também não sabia que era possível.. Mas existe diferenças no plano de execução entre os 2 users.
Vou analisar isso com mais calma e volto com mais detalhes...
Vlws..
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother,
Verifica se não existe nenhum trigger de ON LOGON fazendo alteração de otimizador na sessão deste outro usuário.
Verifica se não existe nenhum trigger de ON LOGON fazendo alteração de otimizador na sessão deste outro usuário.
-
- Rank: Programador Pleno
- Mensagens: 43
- Registrado em: Ter, 20 Mar 2012 11:37 am
- Localização: Campinas
Leandro L. Miranda
Olá Trevisolli,
Obrigado pela ajuda. Já havia checado isso e não tem nada que justifique...
Solicitei ajuda de uma equipe de performance aqui da empresa.. rsrs, mas até agora não foi encontrado nd que faça sentido...
Provavelmente terei que dar uma revisada na view e tentar encontrar um caminho melhor pras consultas dela...
Caso conheça mais alguma coisa que possa influenciar, toda sugestão é bem vinda.
Abraço.
Obrigado pela ajuda. Já havia checado isso e não tem nada que justifique...
Solicitei ajuda de uma equipe de performance aqui da empresa.. rsrs, mas até agora não foi encontrado nd que faça sentido...
Provavelmente terei que dar uma revisada na view e tentar encontrar um caminho melhor pras consultas dela...
Caso conheça mais alguma coisa que possa influenciar, toda sugestão é bem vinda.
Abraço.
- stcoutinho
- Moderador
- Mensagens: 850
- Registrado em: Qua, 11 Mai 2011 5:15 pm
- Localização: são Paulo - SP
Algumas sugestões:
- Vocês constumam usar PROFILES em seu banco de dados? Pode ser que um usuário pertença a uma um perfil diferente do outro, e isso eventualmente poderia impactar na forma que o usuário utiliza os recursos do servidor;
- Estes dois usuários, a tablespace temporária deles seria a mesma?
- Sua view menciona somente colunas, ou utiliza algum tipo de função (standard ou customizada), ou dblink ? Seria possível postar sua view no site?
- A querie que você executa é um SELECT * FROM "VIEW" ou seria alguma outra querie mais complexa, onde a view é somente um dos componentes?
Posso estar falando bobagem, mas o ORACLE cria um plano de ação na querie por usuário de banco. Talvez seu antigo usuário esteja adotando um plano de acesso que ainda está em memória, e seu usuário novo um outro plano diferente, uma vez que ele nunca havia executado esta querie antes.
Pode ser que ao inicializar a instância, ou dar um flush na shared pool, ambos passem a ver o mesmo plano. É só um comentário, pois acredito que você não queria fazer nenhuma destas opções no banco.
Abraços,
Sergio Coutinho
- Vocês constumam usar PROFILES em seu banco de dados? Pode ser que um usuário pertença a uma um perfil diferente do outro, e isso eventualmente poderia impactar na forma que o usuário utiliza os recursos do servidor;
- Estes dois usuários, a tablespace temporária deles seria a mesma?
- Sua view menciona somente colunas, ou utiliza algum tipo de função (standard ou customizada), ou dblink ? Seria possível postar sua view no site?
- A querie que você executa é um SELECT * FROM "VIEW" ou seria alguma outra querie mais complexa, onde a view é somente um dos componentes?
Posso estar falando bobagem, mas o ORACLE cria um plano de ação na querie por usuário de banco. Talvez seu antigo usuário esteja adotando um plano de acesso que ainda está em memória, e seu usuário novo um outro plano diferente, uma vez que ele nunca havia executado esta querie antes.
Pode ser que ao inicializar a instância, ou dar um flush na shared pool, ambos passem a ver o mesmo plano. É só um comentário, pois acredito que você não queria fazer nenhuma destas opções no banco.
Abraços,
Sergio Coutinho
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Bing [Bot] e 16 visitantes