Informações do Ambiente:
* Versão do Oracle: 11g r2
* Sistema Operacional: win 2008 64 bits
Olá Pessoal,
Tenho um banco com uma tablespace nnn.DBF e tiveram que aumentar ela com 5 datafile .DAT
Preciso Saber o que esta guardado nestes datafile .DAT porque cresceu demais e muito rapido.
Teria um select ou ferramenta para saber o conteudo dos .DAT para saber se e tabelas ou outro tipo de objeto ?
Qualquer dica e bem vindo.
Abs.
Como saber o Conteudo de Datafiles.
-
- Rank: Analista Júnior
- Mensagens: 82
- Registrado em: Ter, 28 Dez 2010 7:41 pm
- Localização: São Paulo - SP
att. Fabio Ishii
http://ishii.profissionaloracle.com.br
http://ishii.profissionaloracle.com.br
Olá,
Basta mudar a query para o filtro ou da tablespace ou pelo datafile.
Outra idéia é utilizar a query :
[]s Ishii
Basta mudar a query para o filtro ou da tablespace ou pelo datafile.
select df.NAME datafile_name,
df.STATUS status_datafile,
df.BYTES/1024/1024/1024 tam_GB,
ts.NAME tablespace_name,
tb.TABLE_NAME obj_name,
'TABLE' obj_type
from v$datafile df,
v$tablespace ts,
dba_tables tb
where ts.TS# = df.TS#
and tb.TABLESPACE_NAME = ts.NAME
union all
select df.NAME datafile_name,
df.STATUS status_datafile,
df.BYTES/1024/1024/1024 tam_GB,
ts.NAME tablespace_name,
ix.index_name obj_name,
'INDEX' obj_type
from v$datafile df,
v$tablespace ts,
dba_indexes ix
where ts.TS# = df.TS#
and ix.tablespace_name = ts.NAME
select * from dba_segments
- madmax
- Rank: DBA Pleno
- Mensagens: 293
- Registrado em: Qua, 13 Dez 2006 5:02 pm
- Localização: São Paulo
- Contato:
________________________________
Douglas - Madmax.
Douglas - Madmax.
Muito obrigado Ishii
O estranho que rodei a sua query e a mesma tabela esta nos 5 datafiles criado pelo outro dba.
A tablesace e TS_DADOS e os datafiles são dados_1, dados_2 ....dados_5
Será se o programa do cliente criou a mesma tabela para cada datafile ?
Obrigado.
O estranho que rodei a sua query e a mesma tabela esta nos 5 datafiles criado pelo outro dba.
A tablesace e TS_DADOS e os datafiles são dados_1, dados_2 ....dados_5
Será se o programa do cliente criou a mesma tabela para cada datafile ?
Obrigado.
-
- Rank: Analista Júnior
- Mensagens: 82
- Registrado em: Ter, 28 Dez 2010 7:41 pm
- Localização: São Paulo - SP
att. Fabio Ishii
http://ishii.profissionaloracle.com.br
http://ishii.profissionaloracle.com.br
Olá,
Na verdade não, o tablespace seria o correspondente a um workplace ou area de trabalho, ele pode estar distribuído em um ou mais datafiles. Como uma tabela está sempre associada a uma tablespace, pode ocorrer que na alocação de espaço da tabela na tablespace, o Oracle divida isso em outros datafiles. Por exemplo, a sua tablespace TS_DADOS tem 6 datafiles, mas você precisa de uma tabela com muito espaço e para conseguir esse espaço, somente se eu pegar uma parte do datafile1, outra do datafile2 e o restante no datafile5. Sua tabela usa a tablespace TS_DADOS apenas mas está distribuída nos 3 datafiles.
Esses conceitos são 101 no Oracle Administration...qualquer dúvida coloque aqui...
[]s Ishii
Na verdade não, o tablespace seria o correspondente a um workplace ou area de trabalho, ele pode estar distribuído em um ou mais datafiles. Como uma tabela está sempre associada a uma tablespace, pode ocorrer que na alocação de espaço da tabela na tablespace, o Oracle divida isso em outros datafiles. Por exemplo, a sua tablespace TS_DADOS tem 6 datafiles, mas você precisa de uma tabela com muito espaço e para conseguir esse espaço, somente se eu pegar uma parte do datafile1, outra do datafile2 e o restante no datafile5. Sua tabela usa a tablespace TS_DADOS apenas mas está distribuída nos 3 datafiles.
Esses conceitos são 101 no Oracle Administration...qualquer dúvida coloque aqui...
[]s Ishii
- madmax
- Rank: DBA Pleno
- Mensagens: 293
- Registrado em: Qua, 13 Dez 2006 5:02 pm
- Localização: São Paulo
- Contato:
________________________________
Douglas - Madmax.
Douglas - Madmax.
Muito Obrigado Ishii por suas explicações clareou muito.
So mas uma duvida amigo.
Tenho esse script que me traz as tabelas maiores do meu banco:
e o maior e justo o a tabela do programa novo que foi criado e encheu os meus datafiles.
A tabela CUSTOPROCDEP porque ficou com o extents tão alto assim ?
O banco antes tinha 60 Gigas agora tem 160 gigas cresceu demais em pouco tempo.
Obrigado e qualquer dica e bem vindo.
So mas uma duvida amigo.
Tenho esse script que me traz as tabelas maiores do meu banco:
Select e.Owner, e.SEGMENT_NAME "Tabela", count(*) "Extents", t.NUM_ROWS "Linhas"
from DBA_EXTENTS e, DBA_TABLES t
Where e.SEGMENT_NAME = t.TABLE_NAME
and e.Owner not in ('SYS','OUTLN','SCOTT','DBSNMP')
Group by e.Owner, e.SEGMENT_NAME, t.NUM_ROWS
Order by e.Owner, count(*) desc
OWNER Tabela Extents Linhas
FRC CUSTOPROCDEP 2575 359387
AGR LOG_ERRO_DATASUL 89 13842831
AGR USUARIOS_FORM_ACESSOS 49 2049621
O banco antes tinha 60 Gigas agora tem 160 gigas cresceu demais em pouco tempo.
Obrigado e qualquer dica e bem vindo.
-
- Rank: Analista Júnior
- Mensagens: 82
- Registrado em: Ter, 28 Dez 2010 7:41 pm
- Localização: São Paulo - SP
att. Fabio Ishii
http://ishii.profissionaloracle.com.br
http://ishii.profissionaloracle.com.br
Olá,
Vamos por partes.
1) Extents, para entender melhor o conceito, imagine o antigo (mas não tanto) defrag no Windows. Visualize os espaços vazios. Se você tivesse muitos espaços vazios e criasse um arquivo grande. Ele iria ocupar o maior espaço de blocos disponíveis a partir de um ponto. Se você editasse esse arquivo, colocasse mais informações etc até que ele dobrasse de tamanho. Os blocos iriam aumentar, não? Então... se fosse comparar, o arquivo seria sua tabela e cada bloco um Extent. O fato de se ter vários extents apenas demonstra que a tabela estendeu ou cresceu um pouco mais, mas não significa que ela é o problema ainda. Se a tabela foi criada com um tamanho de 64K mas estou inserindo 64Mb de dados, ela vai estender 1000 vezes, mas ainda assim não seria o problema, pois se esse espaço for contíguo, mesmo com 1000 ou 20000 extents não teremos problemas nem de performance nem de alocação de espaço, apenas teremos um dimensionamento equivocado do Initial e dos next extends da tabela....
2) Quantidade de linhas: O que ocupa mais espaço no Oracle, uma tabela com 100 colunas varchar2(1) todas, ou uma tabela com 1 coluna Blob? Se essa tabela de 100 colunas tiver 1Mb de linhas e a tabela de 1 Coluna Blob tiver uma imagem de 4Gb? Esse valor também pode não significar nada ainda....
3) Acho melhor analisar por segment_name (que nem sempre é uma tabela, pois pode ser um índice também, mas (e sempre tem um MAS) você tem que monitorar o crescimento delas, pode ser via planilha (ou tabelas do Oracle) isso num certo intervalo de tempo que somente você DBA tem como saber. Se o BD cresceu X Mb em Y tempo, você já tem como dimensionar o tamanho em Z tempo....
4) Monitore diariamente até que você tenha essa fórmula definida, depois você consegue monitorar num intervalo de tempo adequado a sua fórmula...
[]sIshii
BOA SORTE...
Vamos por partes.
1) Extents, para entender melhor o conceito, imagine o antigo (mas não tanto) defrag no Windows. Visualize os espaços vazios. Se você tivesse muitos espaços vazios e criasse um arquivo grande. Ele iria ocupar o maior espaço de blocos disponíveis a partir de um ponto. Se você editasse esse arquivo, colocasse mais informações etc até que ele dobrasse de tamanho. Os blocos iriam aumentar, não? Então... se fosse comparar, o arquivo seria sua tabela e cada bloco um Extent. O fato de se ter vários extents apenas demonstra que a tabela estendeu ou cresceu um pouco mais, mas não significa que ela é o problema ainda. Se a tabela foi criada com um tamanho de 64K mas estou inserindo 64Mb de dados, ela vai estender 1000 vezes, mas ainda assim não seria o problema, pois se esse espaço for contíguo, mesmo com 1000 ou 20000 extents não teremos problemas nem de performance nem de alocação de espaço, apenas teremos um dimensionamento equivocado do Initial e dos next extends da tabela....
2) Quantidade de linhas: O que ocupa mais espaço no Oracle, uma tabela com 100 colunas varchar2(1) todas, ou uma tabela com 1 coluna Blob? Se essa tabela de 100 colunas tiver 1Mb de linhas e a tabela de 1 Coluna Blob tiver uma imagem de 4Gb? Esse valor também pode não significar nada ainda....
3) Acho melhor analisar por segment_name (que nem sempre é uma tabela, pois pode ser um índice também, mas (e sempre tem um MAS) você tem que monitorar o crescimento delas, pode ser via planilha (ou tabelas do Oracle) isso num certo intervalo de tempo que somente você DBA tem como saber. Se o BD cresceu X Mb em Y tempo, você já tem como dimensionar o tamanho em Z tempo....
4) Monitore diariamente até que você tenha essa fórmula definida, depois você consegue monitorar num intervalo de tempo adequado a sua fórmula...
[]sIshii
BOA SORTE...
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 8 visitantes