segunda-feira, 28 de abril de 2014
domingo, 27 de abril de 2014
12c - Statistics During Loads
12:40
No comments
No Oracle Database 12c, foi introduzida uma nova feature, Online Statistics
Gathering for Bulk Loads.
O banco de dados irá coletar estatísticas automaticamente das tabelas
durante os seguintes tipos de operações bulk
load:
- CREATE
TABLE AS SELECT
- INSERT INTO ... SELECT into an empty table using a direct path
insert
Por padrão, parallel inserts usam
direct path insert. Podemos forçar o direct path insert usando o hint
/ * + APPEND * /.
Lembrando que ao coletar as estatísticas, o banco de dados não irá gerar
histograms e nem coletar estatísticas
para índices existentes. Para isso é necessário utilizar o DBMS_STATS.
Para a criação de índices, desde a versão 10G o Oracle automaticamente
coleta as estatísticas do índice após a sua criação.
Para voltar a ter o comportamento anterior à release 12c e não coletar as estatísticas, podemos utilizar o hint
NO_GATHER_OPTIMIZER_STATISTICS.
SQL> create table tabela_teste
(
coluna1 number,
coluna2 number
);
Table created.
SQL> begin
for i in 1..1000
loop
insert into tabela_teste values(i, i);
end loop;
commit;
end;
/
PL/SQL procedure successfully completed.
SQL> select count(*) from tabela_teste;
COUNT(*)
----------
1000
Podemos verificar que não existem estatísticas, pois foi um insert normal:
TABLE_NAME NUM_ROWS LAST_ANALYZED
------------------------------ ---------- -------------
TABELA_TESTE
Agora utilizando CTAS:
Table created.
SQL> select table_name, num_rows, last_analyzed from user_tables where table_name='TABELA_TESTE2';
TABLE_NAME NUM_ROWS LAST_ANALYZED
------------------------------ ---------- -------------
TABELA_TESTE2 1000 16-APR-14
Utilizando direct path insert:
SQL> create table tabela_teste3 ( coluna1 number, coluna2 number ); Table created. SQL> insert /*+ APPEND */ into tabela_teste3 select object_id,object_id from user_objects where rownum < 30; 25 rows created. SQL> select table_name, num_rows, last_analyzed from user_tables where table_name='TABELA_TESTE3'; TABLE_NAME NUM_ROWS LAST_ANALYZED ------------------------------ ---------- ------------- TABELA_TESTE3 25 16-APR-14 10:20:00 Quando a tabela não está vazia, as estatísticas não são atualizadas:
25 rows created.
SQL> select table_name, num_rows, last_analyzed from user_tables where table_name='TABELA_TESTE3';
TABLE_NAME NUM_ROWS LAST_ANALYZED
------------------------------ ---------- -------------
TABELA_TESTE3 25 16-APR-14 10:20:00
Verificando o plano de execução:
create table tabela_teste4 as select * from tabela_teste;
Explained.
SQL> select * from table(dbms_xplan.display(null, null, 'BASIC'));
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 1183779688
------------------------------------------------------------------
| Id | Operation | Name |
------------------------------------------------------------------
| 0 | CREATE TABLE STATEMENT | |
| 1 | LOAD AS SELECT | TABELA_TESTE2 |
| 2 | OPTIMIZER STATISTICS GATHERING | |
| 3 | TABLE ACCESS FULL | TABELA_TESTE |
------------------------------------------------------------------
10 rows selected.
Obtendo informações sobre a coleta automática de estatísticas:
TABLE_NAME COLUMN_NAME NUM_DISTINCT NOTES
-------------------- -------------------- ------------ ------------------------------
TABELA_TESTE3 COLUNA1 25 STATS_ON_LOAD
TABELA_TESTE3 COLUNA2 25 STATS_ON_LOAD
Para restrições na coleta automática, consultar a referência abaixo.
Referências:
Abraço,
Alex Zaballa
sábado, 19 de abril de 2014
12c - Last Successful Login Time in SQL*Plus
16:15
No comments
No Oracle Database 12c, foi introduzida uma nova funcionalidade no utilitário SQL*Plus, o Last Successful Login Time in SQL*Plus.
O SQL*Plus do Oracle Database 12c adicionou uma informação na tela login, agora por default, é mostrada a última data e hora de login do usuário.
[oracle@oracle01]$ sqlplus scott/tiger SQL*Plus: Release 12.1.0.1.0 Production on Thu Mar 27 16:23:55 2014 Copyright (c) 1982, 2013, Oracle. All rights reserved. Last Successful login time: Wed Mar 26 2014 16:02:23 +01:00 Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics and Real Application Testing options
Essa informação também pode ser obtida na view DBA_USERS:
from dba_users
where username = 'SCOTT';
USERNAME LAST_LOGIN
--------------- -------------------------
SCOTT 27.03.2014 16:23:56
Para inibir isso, basta utilizar a opção nologintime:
SQL*Plus: Release 12.1.0.1.0 Production on Thu Mar 27 16:26:40 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options
SQL>
Referências:
Abraço
Alex Zaballa
quarta-feira, 16 de abril de 2014
segunda-feira, 7 de abril de 2014
Collaborate 14 - Review
21:54
No comments
Esta semana, estive participando do evento Collaborate 14 que ocorreu em Las Vegas de 07/04 à 11/04.
As opções para inscrição no evento, eram pelo OAUG, IOUG e Quest. Como não encontrei nenhuma diferença, acabei fazendo minha inscrição pelo OAUG.
Um dia antes do evento, fiquei sabendo que deveria ter feito pelo IOUG, devido as pre-conferences oferecidas pelo IOUG e somente disponíveis para quem estava inscrito por esse user group.
Felizmente isso não foi um grande problema, pois consegui alterar para o IOUG no credenciamento e consegui participar do Rac Attack 12c.
Chegada no aeroporto de Las Vegas:
Como o hotel do evento estava lotado, fiquei hospedado no "The Mirage", que fica em frete:
The Venetian (Hotel onde ocorre o evento):
No domingo à noite (06/04), fui a um PUB chamado Public House no Venetian com o pessoal do Rac Attack:
Segunda-Feira
Credenciamento:
No primeiro dia (segunda-feira) participei o Rac Attack 12c:
Oracle ACE Dinner :
Terça-Feira
Na terça-feira, meu dia iniciou com o Tom Kyte, falando sobre o in-memory:
A segunda foi sobre o Oracle Database 12c em ambientes Cloud e Big Data:
A terceira foi sobre Data Guard 12c:
A quarta foi novamente com o Tom Kyte falando sobre 24 novas funcionalidades presentes no 12c:
A quinta foi com o Leighton Nelson, falando sobre 10 features para DBAS no EM12c:
A sexta foi com a DbaKevlar sobre ASH e AWR:
A sétima foi um encontro do Oracle RAC SIG:
Quarta-Feira
Na quarta-feira, comecei meu dia vendo a apresentação do Gustavo Rene Antunez:
A segunda, foi um Keynote da Oracle:
A terceira foi sobre patchs no Exadata:
A quarta sobre Hadoop, NoSQL e RDBMS:
A quinta foi com o Frits Hoogland:
A sexta foi um Keynote da IBM:
E a sétima sobre SSD:
Quinta-Feira
Na quinta-feira, meu dia começou com Dan Hotka, falando sobre algumas New Features do DB12c:
A segunda foi com Gustavo Rene Antunez, falando sobre Exadata:
A terceira foi uma sessão da OakTable com Kyle Haile sobre Agile Data :
A quarta foi sobre Flex ASM e Flex Cluster:
A quinta foi novamente uma sessão da OakTable, agora com Graham Wood falando sobre Real-World Peformance:
A sexta foi sobre New Features de Tuning no 12c:
Uma passada no estande da Pythian:
Sexta-Feira
Na sexta, meu dia iniciou com o Rene falando sobre o que existe de novo no RMAN 12c:
A segunda, foi com o Bobby Curtis falando sobre EM12c e Database 12c:
A terceira foi sobre RAC 12c + Multitenant:
Kay Yu:
E a última foi com o Arup Nanda:
Abraço
Alex Zaballa
terça-feira, 1 de abril de 2014
Criando um PDB com os Samples Schemas
14:32
No comments
http://horia-berca-oracledba.blogspot.com/2013/08/create-pdb-with-sample-schemas-in-db12c.html