Mais rápida ainda seria usar as tabelas do dicionário ao invés das views.
Mais ou menos:

ops$marcio:YODA10G> select u.name
  2    from sys.user$ u
  3   where exists ( select null
  4                    from sys.obj$ o
  5                   where o.owner# = u.user# )
  6    and u.name not in ( 'SYS', 'SYSTEM', 'PUBLIC')
  7 /

NAME
------------------------------
OUTLN
DMSYS
TSMSYS
DBSNMP
WMSYS
EXFSYS
CTXSYS
XDB
OLAPSYS
ORDSYS
ORDPLUGINS
SI_INFORMTN_SCHEMA
MDSYS
SYSMAN
SCOTT
OPS$MARCIO
FLOWS_FILES
FLOWS_020200
SCH_MARCIO
SCH_IDBA
UTIL

21 rows selected.


Execution Plan
----------------------------------------------------------
Plan hash value: 1912670254

-----------------------------------------------------------------------------
| Id  | Operation          | Name   | Rows  | Bytes | Cost (%CPU)| Time
|
-----------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |        |    19 |   285 |    65   (0)| 00:00:01
|
|*  1 |  FILTER            |        |       |       |            |
|
|*  2 |   TABLE ACCESS FULL| USER$  |    62 |   930 |     3   (0)| 00:00:01
|
|*  3 |   INDEX RANGE SCAN | I_OBJ2 |     2 |     6 |     2   (0)| 00:00:01
|
-----------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter( EXISTS (SELECT /*+ */ 0 FROM "SYS"."OBJ$" "O" WHERE
              "O"."OWNER#"=:B1))
   2 - filter("U"."NAME"<>'SYS' AND "U"."NAME"<>'SYSTEM' AND
              "U"."NAME"<>'PUBLIC')
   3 - access("O"."OWNER#"=:B1)


Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
        127  consistent gets
          0  physical reads
          0  redo size
        710  bytes sent via SQL*Net to client
        385  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
         21  rows processed


On 9/19/06, jlchiappa <[EMAIL PROTECTED]> wrote:
>
> Bem, nnn_OBJECTS mostra MUITOS outros tipos de objetos afora
> tabs/índices e programas (que é o que vc quer, pelo que entendi da sua
> msg, pelo que li vc spo considera um "schema" se o usuário tem essas
> coisas criadas, certo ?) - ainda assim, não era pra ser tão tão lento
> assim o acesso, vale a pena vc checar no metalink, em diversos
> releases de bd houveram alguns bugs de performance em relação à
> nnn_OBJECTS, veja lá se algum deles se encaixa no seu caso, mas
> respoendendo : uma consulta mais otimizada poderia ser :
>
> SELECT distinct owner from all_tables where owner not in ('SYS',
> 'SYSTEM');
>
> e depois
>
> SELECT distinct owner from all_source where owner not in ('SYS',
> 'SYSTEM');
>
> []s
>
> Chiappa
>
> --- Em oracle_br@yahoogrupos.com.br, Jonatas Gomes Alves
> <[EMAIL PROTECTED]> escreveu
>
> >
> > Pessoal, meu banco tem 250 usuários. Desses, somente
> > 10 ou 15 possuem objetos (constituem schemas).
> >
> > Gostaria de um select que me retornasse esses
> > usuários.
> > Estou usando o select abaixo, mas é extremamente lento
> > (penso existir uma maneira mais otimizada):
> >
> > select distinct owner from all_objects;
> >
> > Obg!
> >
> >
> >
> > _______________________________________________________
> > Yahoo! Acesso Grátis - Internet rápida e grátis. Instale
> > o discador agora!
> > http://br.acesso.yahoo.com
> >
>
>
>
>
>
> 
>



-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle     -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


[As partes desta mensagem que não continham texto foram removidas]



--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________

OPORTUNIDADES DE TRABALHO, VAGAS, EMPREGOS PARA PROFISSIONAIS ORACLE VISITE: 
http://www.oraclebr.com.br/
__________________________________________________________________
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine  
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a