AUTOEXTEND

Dúvidas, dicas e atualizações sobre o Treinamento Oracle Performance Diagnostics & Tuning.
Post Reply
portilho
Site Admin
Posts: 491
Joined: Wed May 29, 2013 8:51 am

AUTOEXTEND

Post by portilho »

Dúvida enviada pelo amigo Carlos:

Por favor nos tire uma duvida, pela sua experiência ocorre degradação (queda de performance) ao usar big tablespace com opção de autoextend ?
Seria mais performático usar tablespace padrão sem autoextend neste caso criando vários datafiles de 32GB e o gerenciamento do crescimento ficando por conta do DBA ?

portilho
Site Admin
Posts: 491
Joined: Wed May 29, 2013 8:51 am

Re: AUTOEXTEND

Post by portilho »

Lentidão por conta de AUTOEXTEND pode acontecer tanto em BIGFILE TABLESPACE quanto em SMALLFILE TABLESPACE.
Isto pode acontecer se:
- Você tem muitas ocorrências de AUTOEXTEND por dia. Imagine um NEXT 1M, por exemplo, toda hora alguma sessão que esteja inserindo dados nesta TABLESPACE sofre uma pequena travada. É bem pequena, mas como são muitas, é um impacto;
- Você tem um grande AUTOEXTEND. Por exemplo, um NEXT 10G. Seja em BIGFILE ou SMALLFILE, é uma boa travada na hora do crescimento.

E na manutenção manual, o trabalho e impacto é o mesmo tanto em BIGFILE quanto em SMALLFILE: você pode ter BIGFILE, e fazer RESIZEs regularmente de 32GB. Dá trabalho do mesmo jeito que ficar adicionando DATAFILEs SMALLFILE de 32GB.

O bom é que isto é mensurável, ou seja, é possível saber se você está com este problema ou não. É o evento "Data file init write".
O que eu prefiro é deixar em AUTOEXTEND com um NEXT adequado para o banco (NEXT 100M são quantas ocorrências durante o dia? 10 ou 1000?), e monitorar se o evento ocorrem.

Então, se você está desconfiado que isto é um problema, olhe no STATSPACK ou AWR o quanto este evento impacta no dia. Se é pouco, nem vale a pena se preocupar com isso.

No teste abaixo, eu mostro que a lentidão no AUTOEXTEND pode acontecer tanto em SMALLFILE quanto em BIGFILE. Assim como aconteceria no momento em que você criasse um DATAFILE de 32GB, ou fizesse um RESIZE para +32GB.

Code: Select all

C:\Users\ricar>sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Qui Fev 6 10:42:35 2020
Version 19.6.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Conectado a:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.6.0.0.0

10:42:36 SYS@ORCL> SET TIMING ON
10:42:42 SYS@ORCL> CREATE TABLESPACE TESTE_SMALLFILE DATAFILE 'D:\oradata\ORCL\TESTE_SMALLFILE.DBF' SIZE 1M AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED;

Tablespace criado.

Decorrido: 00:00:00.38
10:42:49 SYS@ORCL> CREATE BIGFILE TABLESPACE TESTE_BIGFILE DATAFILE 'D:\oradata\ORCL\TESTE_BIGFILE.DBF' SIZE 10M AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED;

Tablespace criado.

Decorrido: 00:00:00.26
10:42:55 SYS@ORCL> CONN / AS SYSDBA
Conectado.
10:43:11 SYS@ORCL> SET TIMING ON
10:43:14 SYS@ORCL> CREATE TABLE TESTE_SMALLFILE TABLESPACE TESTE_SMALLFILE AS SELECT * FROM ALL_OBJECTS;

Tabela criada.

Decorrido: 00:00:08.94
10:44:26 SYS@ORCL> CONN / AS SYSDBA
Conectado.
10:45:05 SYS@ORCL> CREATE TABLE TESTE_BIGFILE TABLESPACE TESTE_BIGFILE AS SELECT * FROM ALL_OBJECTS;

Tabela criada.

Decorrido: 00:00:13.25
10:45:36 SYS@ORCL>

Post Reply