Colega, o que eu posso dizer é que o ROWID por si só Não Implica em sessão 
sendo criada, de forma alguma - eu vejo aí 3 possibilidades, todas elas em 
grande medida ** independentes ** do fato de vc estar em RAC ou não :
  
  a) esse SQL está sendo executado EM PARALELO, e alguém na hora de configurar 
esse database e/ou as tabelas envolvidas definiu o grau de paralelismo bem 
alto, então o que vc está vendo são parallel slaves sendo criados

ou

  b) vc tem algum tipo de Replicação setada para esse tal objeto, e essas 
sessões extras são a replicação acontecendo

ou

  c) vc está vendo aí uma COINCIDÊNCIA, ie : no mesmo período em que vc estava 
testando , algum job, algum rotina programada (seja qual for) abriu esse montão 
de conexões, OU mesmo vc tem pool de conexões ativo aí , o pool está 
configurado para crescer largamente E no momento em que vc estava testando o 
pool cresceu

 O que eu Recomendo para vc é :

  1. IDENTIFIQUE exatamente o que vc tem nesse sistema E nesse database de 
ações automáticas (ie, for ado banco crons e coisas do tipo, e no banco jobs, 
triggers, replicações, views materializadas, standby, etc, etc, etc), para 
comprovar ou negar a hipótese de alguma coisa do tipo disparando no seu período 
de testes

  2. à noite, num período em que NÃO haja ninguém usando o sistema, UMA VEZ 
CONFIRMADo que não tem nada "disparando"/executando nesse horário, conectando 
no sqlplus LOCAL desse database como sysdba, vc :

    - DESABILITE parallel query com  :
        
        alter session disable parallel query;
        
    - IDENTIFIQUE as sessões que vc tem no banco,  fazendo uma consulta que 
mostre além da qtdade de sessões, QUEM as iniciou, o que elas fazem (pelo 
módulo/osuser/aplicação/etc) , tipo :

  SELECT inst_id, TRUNCATE(logon_time, 'HH'), osuser, username, machine, 
program, module, client_info, terminal, count(*) from  gv$session
  GROUP BY inst_id, TRUNCATE(logon_time, 'HH'), osuser, username, machine, 
program, module, client_info, terminal;
  
  (atenção que esse é um MODELO, estou escrevendo isso de cabeça, VERIFIQUE 
direitinho as colunas/etc antes de executar)
  
    - faça um SELECT (com ou sem rowid, não importa) numa Outra tabela, 
preferencialmeente numa das tabelas de demo do Oracle, ou numa tabela sua que 
vc Tem certeza que não tem nennhum tipo de 'replicação", trigger, auditoria ou 
o que for nela
        
        - repita a consulta das sessões
        
        - faça o SELECT em questão da sua pergunta
        
        - repita a consulta das sessões
        
 e veja o que vc vai ver....
 
  []s
  
    Chiappa

--- Em oracle_br@yahoogrupos.com.br, Alessandro Lúcio Cordeiro da Silva 
<alecordeirosilva@...> escreveu
>
>     Olá Senhores,
> 
>   Em Oracle 11.2.0.3.0 em ambiente Rac estamos com um caso muito estranho. Ao 
> realizar um Select em uma determinada tabela com ROWID o oracle cria 
> automaticamente umas 120 sessões.
> 
>   Segue:
> 
>    Em uma sessão do SQLPLUS, para o meu usuario tem 5 sessões
> 
> SQL> select count(*) from gv$session where username = 'ALESSANDROL';
>   COUNT(*)
> ----------
>          5
>   Abro uma nova sessão e realizaro uma consulta com ROWID
> 
> SQL> select a.*, rowid from trancaix a;
>   ;......
> 
>   Volto para Sessão anterior e realiza
> SQL> select count(*) from gv$session where username = 'ALESSANDROL';
>   COUNT(*)
> ----------
>        134
> 
> Alguem já viu isso? O problema é que o sistema faz este SQL, e se uns 5 
> usuarios abrir o modulo caixa o banco começa a ficar lento, pois acaba tento 
> mais de 600 Sessões com apenas 5 usuarios logado.     
> 
> 
>  
> Alessandro Lúcio Cordeiro da Silva 
>         Analista de Sistema
> þ http://alecordeirosilva.blogspot.com/
> O tic-tac do relógio me lembra de algo muito importante que esta acontecendo: 
> estamos vivos.
>                                 "Joana de Souza Schmitz Croxato"
> 
> [As partes desta mensagem que não continham texto foram removidas]
>


Responder a