- Este tópico contém 8 respostas, 5 vozes e foi atualizado pela última vez 14 anos, 1 mês atrás por
jspaulonci.
-
AutorPosts
-
2 de setembro de 2011 às 10:41 pm #100647
jurupoc
ParticipantePessoal alguem tem uma select pronta onde eu passo o nome do schema e ele apresenta o seguinte resultado:
TABELA_X 10 registros
TABELA_Y 21 registros
……2 de setembro de 2011 às 11:13 pm #100649Danielson
Participante..
2 de setembro de 2011 às 11:35 pm #100650felipeg
ParticipanteOlá,
Alterei o exemplo de um post aberto no AskTom.
http://asktom.oracle.com/pls/asktom/f?p … 0875645686Crie uma função:
create or replace
function get_rows( p_tname in varchar2 ) return number
as
l_columnValue number default NULL;
begin
execute immediate
'select count(*)
from ' || p_tname INTO l_columnValue;return l_columnValue;end;
/
Chame a função informando o nome do seu schema no select conforme segue abaixo:
select table_name,
get_rows(owner||'.'||table_name) cnt
from all_tables
where owner = 'OWNER'
/
Atenciosamente,
Felipe.2 de setembro de 2011 às 11:44 pm #100651jurupoc
ParticipanteObrigado Felipe e Danielson!!!
Estava tentando fazer aqui mas não deu certo…… olha até onde eu cheguei…
begin
for x in ( select
table_name
from
dba_tables
where
dba_tables.owner = 'LAMODA' )
loop
execute immediate 'insert into teste4 values ('''|| x.table_name ||''','||select count(*) from x.table_name||')';
end loop;end;
Rsrsrsr só um detalhe não funfoooo
3 de setembro de 2011 às 12:53 am #100653diegolenhardt
Participantese as estatisticas estiverem computadas tem a coluna num_rows na user_tables…
😀
25 de outubro de 2011 às 4:30 pm #101362felipeg
ParticipanteSei que é um post velho mas achei uma outra solução interessante.
E funciona sem precisar coletar as estatísticas.
SELECT table_name,DBMS_XMLGEN.getxmltype ('SELECT Count(*) c FROM ' || table_name).EXTRACT ('//text()').getnumberval() tot_rows FROM user_tables;É só executar no schema que você deseja ter a informação de tabelas e linhas.
Atenciosamente,
Felipe.25 de outubro de 2011 às 6:25 pm #101364jspaulonci
ParticipanteA quantidade reais de linhas mais perto da realidade é o count, porem imaginem realizar o count de uma tabela de 150 Gb ? é custoso, demorado, e consome muito recurso do servidor.
A num_rows da DBA_TABLES ou USER_TABLES, apresentará um valor aproximado , porem acredito que seja a solução mais prudente.
25 de outubro de 2011 às 7:14 pm #101365felipeg
ParticipanteConcordo João,
Porém, como ele não informou a quantidade ou o tamanho das tabelas achei válido deixar mais uma solução disponível, até devido ao fato de esta mostrar com exatidão as quantidades.
O uso fica a sempre a cargo do bom senso do responsável, independente da solução 8)
Atenciosamente,
Felipe.25 de outubro de 2011 às 7:15 pm #101366jspaulonci
ParticipanteExato !!!!
-
AutorPosts
- Você deve fazer login para responder a este tópico.