Re: [oracle_br] Tabelas com espaço perdido.

2019-04-05 Por tôpico jlchia...@yahoo.com.br [oracle_br]
E é Óbvio, mas só pra deixar Claro : se a necessidade é reaproveitar quase que 
CADA grãozinho de espaço disponível, a idéia é usar TUDO que foi sugerido, ie : 
Analisar as possibilidades de compactação de tabelas e índices, Analisar a 
chance de liberar espaço sem dados depois de DELETE, Analisar a possibilidade 
de mexer no controle de espaço dentro de cada bloco, checar se é possível 
baixar HWM, se é indicado ter extents menores e/ou de tamanho múltiplo entre 
si, etc... É o CONJUNTO

[]s

  Chiappa

Re: [oracle_br] Tabelas com espaço perdido.

2019-04-05 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Nesse cenário, vamos RECRIAR os extents, de forma que os extents reservados 
sejam liberados :

SYSTEM@O11GR2>create tablespace TS_MOVTO datafile 
'C:\APP\ORACLE\ORADATA\O11GR2\O11GR2\TS_MOVTO_01.DBF'  size 10M autoextend on 
maxsize unlimited EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT 
AUTO;

Tablespace criado.

SYSTEM@O11GR2>alter table SCOTT.TAB_TESTE_ESPACO move tablespace TS_MOVTO;

Tabela alterada.

SYSTEM@O11GR2>select sum(bytes), count(*) from DBA_EXTENTS where 
segment_name='TAB_TESTE_ESPACO';

  SUM(BYTES)   COUNT(*)
 --
 159.383.552 90

1 linha selecionada.

SYSTEM@O11GR2>select count(*) from SCOTT.TAB_TESTE_ESPACO;

  COUNT(*)
--
 55280

1 linha selecionada.

SYSTEM@O11GR2>


==> AGORA SIM, menos linhas estão ocupando menos espaço... c.q.d. .

[]s

  Chiappa

Re: [oracle_br] Tabelas com espaço perdido.

2019-04-05 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Sem dúvida, vc PODE remover o espaço acima da hwm, vc PODE também alterar 
pctfree/pctused pra que MENOS espaço dentro dos blocos fique reservado para 
futuros UPDATEs, vc PODE compactar tabelas e índices, vc  PODE recriar um 
extent com um tamanho menor para que o último extent não usado até o fim seja 
menor, sim, como eu havia dito...
 Porém, via de regra, a quota do leão de espaço "desperdiçado" é o espaço 
ABAIXO da hwm que ficou em branco após DELETEs : como eu disse, esse espaço NÂO 
está desperdiçado pro si só, está reservado para futuros INSERTs/UPDATEs, mas 
se a pessoa SOUBER que aconteceram DELETEs em massa e não virão mais 
INSERTs/UPDATEs, aí sim, essa alocação passa a ser questionável Desse jeito 
:
 
 => primeiro, vamos criar uma tabespace LMT com extent sizes restritos E com 
controle de espaço dentro dos blocos automático, pra não precisarmos se 
preocupar com isso :
 
SYSTEM@O11GR2>create tablespace TS_LMT_AUTO_FULL datafile 
'C:\APP\ORACLE\ORADATA\O11GR2\O11GR2\TS_LMT_AUTO_FULL_01.DBF'  size 100M 
autoextend on maxsize unlimited EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT 
SPACE MANAGEMENT AUTO;

Tablespace criado.

SYSTEM@O11GR2>alter user scott quota unlimited on TS_LMT_AUTO_FULL;

Usuário alterado.

 => crio uma tabela com mais do que um punhado de extents :
 
SCOTT@O11GR2>create table TAB_TESTE_ESPACO( c1 number, c2 varchar2(2000)) 
tablespace TS_LMT_AUTO_FULL;

Tabela criada.

SCOTT@O11GR2>create sequence SEQ_TESTe_ESPACO;

Sequência criada.

SCOTT@O11GR2>insert into TAB_TESTE_ESPACO (select seq_teste_espaco.nextval, 
lpad(object_name, 2000, '*') from all_objects);

68267 linhas criadas.

SCOTT@O11GR2>commit;

Commit concluído.

SCOTT@O11GR2>select count(*) from TAB_TESTE_ESPACO;

  COUNT(*)
--
 68267

1 linha selecionada.

SCOTT@O11GR2>

==> Veja que cada extent está  'grudado' um no outro, o próximo começa onde o 
anterior terminou, não há 'GAPS' entre eles :

SYSTEM@O11GR2>select owner, file_id, extent_id, block_id, bytes, 
block_id+blocks as PROXIMO from dba_extents where 
tablespace_name='TS_LMT_AUTO_FULL';

OWNER   FILE_ID  EXTENT_ID   BLOCK_ID  BYTES PROXIMO
 -- -- -- -- ---
SCOTT 5  0128  65536 136
SCOTT 5  1136  65536 144
SCOTT 5  2144  65536 152
SCOTT 5  3152  65536 160
SCOTT 5  4160  65536 168
SCOTT 5  5168  65536 176
SCOTT 5  6176  65536 184
SCOTT 5  7184  65536 192
SCOTT 5  8192  65536 200
SCOTT 5  9200  65536 208
SCOTT 5 10208  65536 216
SCOTT 5 11216  65536 224
SCOTT 5 12224  65536 232
SCOTT 5 13232  65536 240
SCOTT 5 14240  65536 248
SCOTT 5 15248  65536 256
SCOTT 5 162561048576 384
SCOTT 5 173841048576 512
 vários e vários mais 
SCOTT 5 78   819210485768320
SCOTT 5 79   832083886089344
SCOTT 5 80   93448388608   10368
SCOTT 5 81  103688388608   11392
SCOTT 5 82  113928388608   12416
SCOTT 5 83  124168388608   13440
SCOTT 5 84  134408388608   14464
SCOTT 5 85  144648388608   15488
SCOTT 5 86  154888388608   16512
SCOTT 5 87  165128388608   17536
SCOTT 5 88  175368388608   18560
SCOTT 5 89  185608388608   19584
SCOTT 5 90  195848388608   20608
SCOTT 5 91  206088388608   21632
SCOTT 5 92  216328388608   22656
SCOTT 5 93  226568388608   23680

94 linhas selecionadas.

=> ok, consumiu quase 200 MB para armazenar as 68 mil e tantas linhas :


Re: [oracle_br] Tabelas com espaço perdido.

2019-04-04 Por tôpico Marcos Braga braga.mar...@gmail.com [oracle_br]
Ednilson,
Você conseguirá recuperar algum espaço se houver lacunas em sua tablespace
(marca d'água além do que realmente é usado).

Abcs, Braga.

Em qua, 3 de abr de 2019 às 08:37, 'Ednilson Silva'
ednilson.si...@jbs.com.br [oracle_br] 
escreveu:

>
>
> Marcos,
>
> Mas fazendo este expdp/drop table/impdp, em uma nova tablespace, irei
> conseguir recuperar alguma coisa em filesystem?
>
> São tabelas com campos LONGs
>
>
>
> Obrigado,
>
> Ednilson
>
>
>
>
>
>
>
> *De:* sentto-1682896-122824-15542334...@returns.groups.yahoo.com [mailto:
> sentto-1682896-122824-15542334...@returns.groups.yahoo.com] *Em nome de 
> *Marcos
> Braga braga.mar...@gmail.com [oracle_br]
> *Enviada em:* terça-feira, 2 de abril de 2019 16:30
> *Para:* oracle_br@yahoogrupos.com.br
> *Assunto:* Re: [oracle_br] Tabelas com espaço perdido.
>
>
>
>
>
> Oi Edinilson, boa tarde.
>
>
>
> Quando o tempo me permite, gosto muito de usar exportação e importação
> (expdp/impdp) para recriar tablespaces e recomeçar tudo limpo e sem os
> vícios que vêm se acumulando no banco atual.
>
>
>
> Claro que esse tipo de procedimento depende do tempo, tamanho, espaço
> disponível em storage e rede para que tudo corra bem dentro da janela
> proposta para a migração.
>
>
>
> Só uma dica.
>
>
>
> Abcs, Braga.
>
>
>
> Em ter, 2 de abr de 2019 às 13:33, 'Ednilson Silva'
> ednilson.si...@jbs.com.br [oracle_br] 
> escreveu:
>
>
>
> Bom dia,
>
> Tenho um banco aqui Oracle 10g – release 10.2.0.5, que será migrado para
> 11g – release 11.2.0.4 ate final do primeiro semestre ainda.
>
> Ocorre que tem algumas tabelas que já gostaria de recuperar o espaço
> perdido. Algumas tem campo LONG RAW, BLOB, CLOB, RAW, XMLTYPE
>
>
>
> Como faço para recuperar o espaço dessas tabelas?
>
>
>
> SQL> select tablespace_name as "TABLESPACE",
>
>   2 num_rows,
>
>   3 to_char(LAST_ANALYZED, 'dd/mm/ hh24:mi') LAST_ANALYZED,
>
>   4 OWNER,
>
>   5 table_name,
>
>   6 round((blocks * 8) / 1024, 0) "size (mb)",
>
>   7 round((num_rows * avg_row_len / 1024 / 1024), 0) "actual_data
> (mb)",
>
>   8 (round((blocks * 8) / 1024, 0) -
>
>   9 round((num_rows * avg_row_len / 1024 / 1024), 0))
> "wasted_space (mb)"
>
> 10from dba_tables
>
> 11   where (round((blocks * 8) / 1024, 0) >
>
> 12 round((num_rows * avg_row_len / 1024 / 1024), 0))
>
> 13 and tablespace_name not in ('SYSTEM', 'SYSAUX')
>
> 14   order by 8 desc
>
> 15  /
>
> TABLESPACE   NUM_ROWS OWNER TABLE_NAME   size (mb)
> actual_data (mb) wasted_space (mb)
>
> -- -- - --- --
>  -
>
> AEFCD  104028 PRODUCAO  ANX_OBRIGACAO_FSC_FIL_MES
> 1664328166424
>
> CFVJD 5804240 PRODUCAO  SMW_PRECO_CLIENTE
> 45849  653 45196
>
> LCTED53315173 PRODUCAO  INVENTTI_ARQUIVOS
> 47789 5237 42552
>
> PSUID19542948 PRODUCAO  ESANMOVANIMAIS
> 36767 1454 35313
>
> SNACD21183099 PRODUCAO  ARQ_XML_ENV_RTN_WBS_MCD_ELE
> 37557 2404 35153
>
> LMDFD 8965655 PRODUCAO  INVENTTI_ARQUIVOS
> 31695  881 30814
>
> ICTCA   37531 PRODUCAO  CORE_ARQUIVO
> 293311 29330
>
> USERS   570982788 PRODUCAO  MLOG$_ORDEM_PRODUCAO
> 3996711435 28532
>
> LTCCD   674743472 PRODUCAO  LANCAMENTO_CTB_ITEM_CTRC
> 11764089444 28196
>
>
>
> Obrigado,
>
> Ednilson Silva
>
>
>
>
> --
>
> *Marcos Braga*
>
> -- .- -.-- -  . ..-. --- .-. -.-. .
>
> Star Wars
>
> -... . .-- .. - . -.-- --- ..-
>
> 
>


-- 
*Marcos Braga*
-- .- -.-- -  . ..-. --- .-. -.-. .
Star Wars
-... . .-- .. -  -.-- --- ..-


RES: [oracle_br] Tabelas com espaço perdido.

2019-04-03 Por tôpico 'Ednilson Silva' ednilson.si...@jbs.com.br [oracle_br]
Marcos,

Mas fazendo este expdp/drop table/impdp, em uma nova tablespace, irei conseguir 
recuperar alguma coisa em filesystem?

São tabelas com campos LONGs

 

Obrigado,

Ednilson

 

 

 

De: sentto-1682896-122824-15542334...@returns.groups.yahoo.com 
[mailto:sentto-1682896-122824-15542334...@returns.groups.yahoo.com] Em nome de 
Marcos Braga braga.mar...@gmail.com [oracle_br]
Enviada em: terça-feira, 2 de abril de 2019 16:30
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Tabelas com espaço perdido.

 

  

Oi Edinilson, boa tarde.

 

Quando o tempo me permite, gosto muito de usar exportação e importação 
(expdp/impdp) para recriar tablespaces e recomeçar tudo limpo e sem os vícios 
que vêm se acumulando no banco atual.

 

Claro que esse tipo de procedimento depende do tempo, tamanho, espaço 
disponível em storage e rede para que tudo corra bem dentro da janela proposta 
para a migração.

 

Só uma dica.

 

Abcs, Braga.

 

Em ter, 2 de abr de 2019 às 13:33, 'Ednilson Silva' ednilson.si...@jbs..com.br 
[oracle_br]  escreveu:

  

Bom dia,

Tenho um banco aqui Oracle 10g – release 10.2.0.5, que será migrado para 11g – 
release 11.2.0.4 ate final do primeiro semestre ainda.

Ocorre que tem algumas tabelas que já gostaria de recuperar o espaço perdido. 
Algumas tem campo LONG RAW, BLOB, CLOB, RAW, XMLTYPE

 

Como faço para recuperar o espaço dessas tabelas?

 

SQL> select tablespace_name as "TABLESPACE",

  2 num_rows,

  3 to_char(LAST_ANALYZED, 'dd/mm/ hh24:mi') LAST_ANALYZED,

  4 OWNER,

  5 table_name,

  6 round((blocks * 8) / 1024, 0) "size (mb)",

  7 round((num_rows * avg_row_len / 1024 / 1024), 0) "actual_data (mb)",

  8 (round((blocks * 8) / 1024, 0) -

  9 round((num_rows * avg_row_len / 1024 / 1024), 0)) "wasted_space 
(mb)"

10from dba_tables

11   where (round((blocks * 8) / 1024, 0) >

12 round((num_rows * avg_row_len / 1024 / 1024), 0))

13 and tablespace_name not in ('SYSTEM', 'SYSAUX')

14   order by 8 desc

15  /

TABLESPACE   NUM_ROWS OWNER TABLE_NAME   size (mb) 
actual_data (mb) wasted_space (mb)

-- -- - --- -- 
 -

AEFCD  104028 PRODUCAO  ANX_OBRIGACAO_FSC_FIL_MES   166432  
  8166424

CFVJD 5804240 PRODUCAO  SMW_PRECO_CLIENTE45849  
653 45196

LCTED53315173 PRODUCAO  INVENTTI_ARQUIVOS47789  
   5237 42552

PSUID19542948 PRODUCAO  ESANMOVANIMAIS   36767  
   1454 35313

SNACD21183099 PRODUCAO  ARQ_XML_ENV_RTN_WBS_MCD_ELE  37557  
   2404 35153

LMDFD 8965655 PRODUCAO  INVENTTI_ARQUIVOS31695  
881 30814

ICTCA   37531 PRODUCAO  CORE_ARQUIVO 29331  
  1 29330

USERS   570982788 PRODUCAO  MLOG$_ORDEM_PRODUCAO 39967  
  11435 28532

LTCCD   674743472 PRODUCAO  LANCAMENTO_CTB_ITEM_CTRC117640  
  89444 28196

 

Obrigado,

Ednilson Silva




 

-- 

Marcos Braga

-- .- -.-- -  . ..-. --- .-. -.-. .

Star Wars

-... . .-- .. - . -.-- --- ..-





Re: [oracle_br] Tabelas com espaço perdido.

2019-04-02 Por tôpico Marcos Braga braga.mar...@gmail.com [oracle_br]
Oi Edinilson, boa tarde.

Quando o tempo me permite, gosto muito de usar exportação e importação
(expdp/impdp) para recriar tablespaces e recomeçar tudo limpo e sem os
vícios que vêm se acumulando no banco atual.

Claro que esse tipo de procedimento depende do tempo, tamanho, espaço
disponível em storage e rede para que tudo corra bem dentro da janela
proposta para a migração.

Só uma dica.

Abcs, Braga.

Em ter, 2 de abr de 2019 às 13:33, 'Ednilson Silva'
ednilson.si...@jbs.com.br [oracle_br] 
escreveu:

>
>
> Bom dia,
>
> Tenho um banco aqui Oracle 10g – release 10.2.0.5, que será migrado para
> 11g – release 11.2.0.4 ate final do primeiro semestre ainda.
>
> Ocorre que tem algumas tabelas que já gostaria de recuperar o espaço
> perdido. Algumas tem campo LONG RAW, BLOB, CLOB, RAW, XMLTYPE
>
>
>
> Como faço para recuperar o espaço dessas tabelas?
>
>
>
> SQL> select tablespace_name as "TABLESPACE",
>
>   2 num_rows,
>
>   3 to_char(LAST_ANALYZED, 'dd/mm/ hh24:mi') LAST_ANALYZED,
>
>   4 OWNER,
>
>   5 table_name,
>
>   6 round((blocks * 8) / 1024, 0) "size (mb)",
>
>   7 round((num_rows * avg_row_len / 1024 / 1024), 0) "actual_data
> (mb)",
>
>   8 (round((blocks * 8) / 1024, 0) -
>
>   9 round((num_rows * avg_row_len / 1024 / 1024), 0))
> "wasted_space (mb)"
>
> 10from dba_tables
>
> 11   where (round((blocks * 8) / 1024, 0) >
>
> 12 round((num_rows * avg_row_len / 1024 / 1024), 0))
>
> 13 and tablespace_name not in ('SYSTEM', 'SYSAUX')
>
> 14   order by 8 desc
>
> 15  /
>
> TABLESPACE   NUM_ROWS OWNER TABLE_NAME   size (mb)
> actual_data (mb) wasted_space (mb)
>
> -- -- - --- --
>  -
>
> AEFCD  104028 PRODUCAO  ANX_OBRIGACAO_FSC_FIL_MES
> 1664328166424
>
> CFVJD 5804240 PRODUCAO  SMW_PRECO_CLIENTE
> 45849  653 45196
>
> LCTED53315173 PRODUCAO  INVENTTI_ARQUIVOS
> 47789 5237 42552
>
> PSUID19542948 PRODUCAO  ESANMOVANIMAIS
> 36767 1454 35313
>
> SNACD21183099 PRODUCAO  ARQ_XML_ENV_RTN_WBS_MCD_ELE
> 37557 2404 35153
>
> LMDFD 8965655 PRODUCAO  INVENTTI_ARQUIVOS
> 31695  881 30814
>
> ICTCA   37531 PRODUCAO  CORE_ARQUIVO
> 293311 29330
>
> USERS   570982788 PRODUCAO  MLOG$_ORDEM_PRODUCAO
> 3996711435 28532
>
> LTCCD   674743472 PRODUCAO  LANCAMENTO_CTB_ITEM_CTRC
> 11764089444 28196
>
>
>
> Obrigado,
>
> Ednilson Silva
>
> 
>


-- 
*Marcos Braga*
-- .- -.-- -  . ..-. --- .-. -.-. .
Star Wars
-... . .-- .. -  -.-- --- ..-


[oracle_br] Tabelas com espaço perdido.

2019-04-02 Por tôpico 'Ednilson Silva' ednilson.si...@jbs.com.br [oracle_br]
Bom dia,

Tenho um banco aqui Oracle 10g – release 10.2.0.5, que será migrado para 11g
– release 11.2.0.4 ate final do primeiro semestre ainda.

Ocorre que tem algumas tabelas que já gostaria de recuperar o espaço
perdido. Algumas tem campo LONG RAW, BLOB, CLOB, RAW, XMLTYPE

 

Como faço para recuperar o espaço dessas tabelas?

 

SQL> select tablespace_name as "TABLESPACE",

  2 num_rows,

  3 to_char(LAST_ANALYZED, 'dd/mm/ hh24:mi') LAST_ANALYZED,

  4 OWNER,

  5 table_name,

  6 round((blocks * 8) / 1024, 0) "size (mb)",

  7 round((num_rows * avg_row_len / 1024 / 1024), 0) "actual_data
(mb)",

  8 (round((blocks * 8) / 1024, 0) -

  9 round((num_rows * avg_row_len / 1024 / 1024), 0)) "wasted_space
(mb)"

10from dba_tables

11   where (round((blocks * 8) / 1024, 0) >

12 round((num_rows * avg_row_len / 1024 / 1024), 0))

13 and tablespace_name not in ('SYSTEM', 'SYSAUX')

14   order by 8 desc

15  /

TABLESPACE   NUM_ROWS OWNER TABLE_NAME   size (mb)
actual_data (mb) wasted_space (mb)

-- -- - --- --
 -

AEFCD  104028 PRODUCAO  ANX_OBRIGACAO_FSC_FIL_MES   166432
8166424

CFVJD 5804240 PRODUCAO  SMW_PRECO_CLIENTE45849
653 45196

LCTED53315173 PRODUCAO  INVENTTI_ARQUIVOS47789
5237 42552

PSUID19542948 PRODUCAO  ESANMOVANIMAIS   36767
1454 35313

SNACD21183099 PRODUCAO  ARQ_XML_ENV_RTN_WBS_MCD_ELE  37557
2404 35153

LMDFD 8965655 PRODUCAO  INVENTTI_ARQUIVOS31695
881 30814

ICTCA   37531 PRODUCAO  CORE_ARQUIVO 29331
1 29330

USERS   570982788 PRODUCAO  MLOG$_ORDEM_PRODUCAO 39967
11435 28532

LTCCD   674743472 PRODUCAO  LANCAMENTO_CTB_ITEM_CTRC117640
89444 28196

 

Obrigado,

Ednilson Silva