*Há tá..*
*Eu já estou filtrando olha os itens em negrito abaixo:*
select
TBS.TB_NAME,
TBS.TB_STATS,
TBS.TB_TOTAL,
TBS.TB_USADO,
TBS.TB_LIVRE,
TBS.TB_PERC,
TBS.MAX_SIZE
from
(
select
'' TB_NAME,
'' TB_STATS,
0 TB_TOTAL,
0 TB_USADO,
0 TB_LIVRE,
0 TB_PERC,
round(sum(DF.MAX_FILE_SIZE)/1024/1024) MAX_SIZE,
DF.TARGET_NAME TGT_NAME
from mgmt$db_datafiles df
group by df.tablespace_name, df.target_name
union
select
TB.TABLESPACE_NAME TB_NAME,
TB.STATUS as TB_STATS,
round(TB.TABLESPACE_SIZE/1024/1024) as TB_TOTAL,
round(TB.TABLESPACE_USED_SIZE/1024/1024) as TB_USADO,
round((TB.TABLESPACE_SIZE-TB.TABLESPACE_USED_SIZE)/1024/1024)
as TB_LIVRE,
decode(TB.TABLESPACE_SIZE,0,0,round(((TB.TABLESPACE_SIZE-TB.TABLESPACE_USED_SIZE)/(TB.TABLESPACE_SIZE)*100),1))
TB_PERC,
0 MAX_SIZE,
TB.TARGET_NAME TGT_NAME
from mgmt$db_tablespaces tb
) tbs
*where tbs.TGT_NAME = <TARGET_NAME>*
group by
tbs.TB_NAME,tbs.TB_STATS,tbs.TB_TOTAL,tbs.TB_USADO,tbs.TB_LIVRE,tbs.TB_PERC,tbs.MAX_SIZE
order by tbs.TB_NAME;
*Estou fazendo relatórios individuais para cada banco de dados, neste caso
está funcionando perfeitamente, o meu problema está na hora de combinar o
UNION, a query acima dá um resultado abaixo, inclusive a soma está correta,
mas não estou colocar os valores do maxsize na mesma coluna que os demais
valores.*
TB_STATS TB_TOTAL TB_USADO TB_LIVRE TB_PERC MAX_SIZE
---------- ---------- ---------- ----------
---------- ----------
ONLINE 262371 144455 117916 44.9
0
ONLINE 171658 52658 119000 69.3
0
ONLINE 2 0 2
96.9 0
ONLINE 1024 1 1023 99.9
0
ONLINE 1024 1 1023 99.9
0
ONLINE 530426 358464 171961 32.4
0
ONLINE 65536 0 65536 100
0
ONLINE 103837 19041 84796 81.7
0
ONLINE 5530 1865 3665 66.3
0
ONLINE 656451 565394 91057 13.9
0
ONLINE 241664 3 241661 100
0
ONLINE 10240 0 10240 100
0
ONLINE 1733977 1669321 64656 3.7
0
ONLINE 352768 180857 171912 48.7
0
ONLINE 360755 238079 122676 34
0
ONLINE 1024 1 1023
99.9 0
0 0 0
0 32767
0 0 0
0 32768
0 0 0
0 65536
0 0 0
0 262144
0 0 0
0 327679
0 0 0
0 393215
0 0 0
0 524288
0 0 0
0 557055
0 0 0
0 688128
0 0 0
0 1789950
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
Livre
de vírus. www.avast.com
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>.
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
Em 6 de fevereiro de 2018 20:18, [email protected] [oracle_br] <
[email protected]> escreveu:
>
>
> E um ** outro ** detalhe importante : iirc a chave lógica de acesso
> completa nessas tabelas aí do Repositório é
> HOST_NAME+TARGET_NAME+TARGET_TYPE+TARGET_GUID+COLLECTION_
> TIMESTAMP : ou seja, pra vc obter os dados de um dada tablespace, vc TEM
> que filtrar pelo HOST_NAME+TARGET_NAME+TARGET_TYPE+TARGET_GUID E ainda
> por cima (já que vc quer fazer análises em cima DA COLETA MAIS RECENTE,
> imagino) vc ainda tem que especificar a COLLECTION_ TIMESTAMP MAIS RECENTE
> - e isso TANTO pra mgmt$db_tablespaces quanto pra mgmt$db_datafiles , eu
> não vi isso na sua query, corrija....
>
> []s
>
> Chiappa
>
> OBS : no máximo, um 'Atalho' que vc pode tomar é , se vc tem 100% DE
> CERTEZA que nunca dois targets de tipos diferentes vão ter o mesmo nome aí
> no seu OEM , vc poderia sim filtrar só por TARGET_NAME - mas OBVIAMENTE, se
> vc não quer somar os valores de TODAS as coletas, a necessidade de filtrar
> pelo COLLECTION_ TIMESTAMP mais recente Ainda se Mantém....
>
>