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