System Statistics em ambiente Multitenant / Singletenant

Assim como as estatísticas de objeto, as Estatísticas de Sistema (coletadas pela Procedure DBMS_STATS.GATHER_SYSTEM_STATS) também devem ser coletadas no CDB e em todos os PDBs (mesmo que seja um único PDB).

Acho que este é mais fácil esquecer pois trata de CPU e I/O, que afinal, são os mesmos para o CDB e todos os PDBs.

No banco abaixo não estamos com as System Statistics coletadas (os valores são o padrão), tanto no CDB, quanto no PDB (CATALOGO).

[oracle@nerv10 ~]$ rlwrap sqlplus SYSTEM/Nerv2017

SQL*Plus: Release 12.1.0.2.0 Production on Tue Jan 3 15:01:19 2017

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

Last Successful login time: Ter Jan 03 2017 14:58:09 -02:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options

SQL> SELECT PNAME, PVAL1 FROM SYS.AUX_STATS$;

PNAME                               PVAL1
------------------------------ ----------
STATUS
DSTART
DSTOP
FLAGS                                   0
CPUSPEEDNW                            506
IOSEEKTIM                              10
IOTFRSPEED                           4096
SREADTIM
MREADTIM
CPUSPEED
MBRC
MAXTHR
SLAVETHR

13 rows selected.

SQL> ALTER SESSION SET CONTAINER = CATALOGO;

Session altered.

SQL> SELECT PNAME, PVAL1 FROM SYS.AUX_STATS$;

PNAME                               PVAL1
------------------------------ ----------
STATUS
DSTART
DSTOP
FLAGS                                   0
CPUSPEEDNW                            506
IOSEEKTIM                              10
IOTFRSPEED                           4096
SREADTIM
MREADTIM
CPUSPEED
MBRC
MAXTHR
SLAVETHR

13 rows selected.

SQL>

Agora vamos coletar as System Statistics, ainda conectados no PDB.

SQL> EXEC DBMS_STATS.GATHER_SYSTEM_STATS('START');

PL/SQL procedure successfully completed.

SQL> -- Deixei o Swingbench rodando por 10 minutos, com 100 usuários simultâneos.
SQL> -- Fui fazer um café...
SQL> EXEC DBMS_STATS.GATHER_SYSTEM_STATS('STOP');

PL/SQL procedure successfully completed.

SQL>

Agora vemos que as estatísticas foram coletadas.

SQL> SELECT PNAME, PVAL1 FROM SYS.AUX_STATS$;

PNAME                               PVAL1
------------------------------ ----------
STATUS
DSTART
DSTOP
FLAGS                                   1
CPUSPEEDNW                            506
IOSEEKTIM                              10
IOTFRSPEED                           4096
SREADTIM                          326,727
MREADTIM                           54,729
CPUSPEED                              518
MBRC                                   48
MAXTHR
SLAVETHR

13 rows selected.

E como estão as System Statistics no CDB? Do mesmo jeito que antes.

SQL> ALTER SESSION SET CONTAINER = CDB$ROOT;

Session altered.

SQL> SELECT PNAME, PVAL1 FROM SYS.AUX_STATS$;

PNAME                               PVAL1
------------------------------ ----------
STATUS
DSTART
DSTOP
FLAGS                                   0
CPUSPEEDNW                            506
IOSEEKTIM                              10
IOTFRSPEED                           4096
SREADTIM
MREADTIM
CPUSPEED
MBRC
MAXTHR
SLAVETHR

13 rows selected.

SQL>

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.