Demora execução VIEW com usuário diferente do owner

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
leandromiranda87
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 43
Registrado em: Ter, 20 Mar 2012 11:37 am
Localização: Campinas
Leandro L. Miranda

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
leandromiranda87
Rank: Programador Pleno
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..
Trevisolli
Moderador
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

Brother,

Verifica se não existe nenhum trigger de ON LOGON fazendo alteração de otimizador na sessão deste outro usuário.
leandromiranda87
Rank: Programador Pleno
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.
Avatar do usuário
stcoutinho
Moderador
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
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 11 visitantes