sábado, 13 de junho de 2015

Alex Zaballa is joining Enkitec soon!

Dentro de alguns dias, irei me juntar a Accenture Enkitec Group.

Depois de 8 anos em Angola, onde tive a oportunidade de crescer muito profissionalmente, me tornei ORACLE ACE, consegui meu duplo OCM (11G e Cloud), 145 certificações Oracle, etc, resolvi mudar para São Paulo e fazer parte da Enkitec.

Por que trabalhar para a Enkitec?

Muitas pessoas com quem aprendi muito, que continuo aprendendo e por quem tenho muita admiração estão trabalhando para este grupo.

Alguns dos profissionais que eu irei trabalhar: https://www.enkitec.com/about/technical-experts


Um agradecimento especial as pessoas que me ajudaram neste processo:
Veronica Stigers, Kerry Osborne, Karl Arao, Carlos Sierra e Rodrigo Righetti.


Estou pronto e muito entusiasmado em fazer parte deste time.

Se você me conhece e conhece a Enkitec, saberá o quanto estou feliz por isso.


Abraço
Alex Zaballa


segunda-feira, 8 de junho de 2015

Habilitando um trace para um SQL ID específico

Algumas vezes, quando precisamos realizar tuning de um SQL específico, ao invés de habilitar o trace para toda sessão, ou módulo, ou serviço, etc, podemos utilizar o seguinte comando:


alter system set events 'sql_trace [sql:|] … rest of event specification';

O SELECT abaixo será usado como exemplo:


select * from hr.employees where employee_id=100;


Buscando o SQL ID do SELECT executado:


select sql_id, sql_text from v$sql where upper(sql_text) like '%FROM HR.EMPLOYEES%';

SQL_ID SQL_TEXT
-------------------- --------------------------------------------------
31d96zzzpcys9 select * from hr.employees where employee_id=100


Habilitando o trace para o SQL ID (evento 10046):


alter system set events 'sql_trace[SQL:31d96zzzpcys9] plan_stat=all_executions,wait=true,bind=true';


Após habilitar o trace, basta executar novamente o SELECT.

Com isso será gerado o seguinte arquivo:

Trace file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_32081.trc
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
ORACLE_HOME = /u01/app/oracle/product/12.1.0/dbhome_2
System name: Linux
Node name: oracle01
Release: 3.8.13-16.2.1.el6uek.x86_64
Version: #1 SMP Thu Nov 7 17:01:44 PST 2013
Machine: x86_64
Instance name: orcl
Redo thread mounted by this instance: 1
Oracle process number: 40
Unix process pid: 32081, image: oracle@oracle01


*** 2015-06-02 19:30:25.636
*** SESSION ID:(20.10934) 2015-06-02 19:30:25.636
*** CLIENT ID:() 2015-06-02 19:30:25.636
*** SERVICE NAME:(SYS$USERS) 2015-06-02 19:30:25.636
*** MODULE NAME:(SQL Developer) 2015-06-02 19:30:25.636
*** CLIENT DRIVER:(jdbcthin) 2015-06-02 19:30:25.636
*** ACTION NAME:() 2015-06-02 19:30:25.636

=====================
PARSING IN CURSOR #139909740052304 len=48 dep=0 uid=0 oct=3 lid=0 tim=150929961385 hv=4283857673 ad='e7b85120' sqlid='31d96zzzpcys9'
select * from hr.employees where employee_id=100
END OF STMT
EXEC #139909740052304:c=0,e=27,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=1833546154,tim=150929961383
WAIT #139909740052304: nam='SQL*Net message to client' ela= 3 driver id=1413697536 #bytes=1 p3=0 obj#=95264 tim=150929961433
FETCH #139909740052304:c=0,e=37,p=0,cr=2,cu=0,mis=0,r=1,dep=0,og=1,plh=1833546154,tim=150929961499
STAT #139909740052304 id=1 cnt=1 pid=0 pos=1 obj=92593 op='TABLE ACCESS BY INDEX ROWID EMPLOYEES (cr=2 pr=0 pw=0 time=34 us cost=0 size=69 card=1)'
STAT #139909740052304 id=2 cnt=1 pid=1 pos=1 obj=92705 op='INDEX UNIQUE SCAN EMP_EMP_ID_PK (cr=1 pr=0 pw=0 time=16 us cost=0 size=0 card=1)'


Desabilitando o trace:


alter system set events 'sql_trace[SQL:31d96zzzpcys9] off';


Também é possível gerar um trace do tipo 10053 (optimizer trace):


alter system set events 'trace[rdbms.SQL_Optimizer.*][sql:31d96zzzpcys9]';



Desabilitando o trace:


alter system set events 'trace[rdbms.SQL_Optimizer.*][sql:31d96zzzpcys9] off';



Referências:




Abraço,
Alex Zaballa

domingo, 31 de maio de 2015

SQLcl



Em Dezembro de 2014 a equipe responsável pelo Oracle SQLDeveloper lançou em beta uma nova ferramenta chamada SQLcl, que também ficou conhecida como "SQL*Plus on steroids", SDSQL (SQLDeveloper SQL), SQL*Plus++, ou como o Jeff Smith chama “SQL Developer meets SQL*Plus”.


Onde baixar a versão atual:


Após baixar a ferramenta, basta descompactar e executar o arquivo sql (conforme a plataforma utilizada) que está no diretório bin.

Para se conectar no banco de dados você pode utilizar EZConnect, TNS, Ldap, etc.






Seguem alguns comandos úteis:







































Meu conselho: baixem a ferramenta e divirtam-se ☺




Referências








domingo, 24 de maio de 2015

12c - Non-CDB is DEPRECATED


Em Janeiro deste ano, um post do Mike Dietrich nos chamou a atenção para algo que até então havia passado despercebido por muitas pessoas:




A arquitetura non-cdb está deprecada a partir da versão 12.1.0.2.


Non-CDB (non Container Database): É a arquitetura “clássica” do banco de dados Oracle, que utilizávamos até a versão 11G.


Documentação oficial falando sobre isso:






Devemos ter em mente que deprecada não significa não suportada.
Todos devem lembrar que os datatypes LONG e LONG RAW estão deprecados há muito tempo, mas continuam existindo dentro do banco de dados, inclusive na versão 12c.

O Multitenant é uma option do banco de dados que é paga a parte.


Isso significa que você tem que comprar essa opção antes de migrar para o Oracle 12c?

A resposta é não, pois existe algo chamado Single Tenant, ou seja, um CDB com apenas um PDB pode ser utilizado sem a obrigatoriedade de uma licença adicional.


Seguem dois posts interessantes que geraram muita discussão sobre este assunto:



Abraço,
Alex Zaballa 

sábado, 9 de maio de 2015

Collaborate 15 - Review

Participei do evento Collaborate15, que ocorreu em Las Vegas de 12 à16/04.


Hotel do Evento:

Credenciamento:





Domingo

 RAC Attack:







Segunda

 Opening Keynote com Erik Wahl:


 Oracle  Database 12c - In-Memory Internals:


The Best Oracle Database 12c Tuning Features:



 Exadata Exachk and Oracle Enterprise Manager 12c: Keeping up with Exadata:


 Twitter 101:




 Oracle Exadata Technical Deep Dive: Architecture and Internals:


 Oracle Automatic Storage Management: What's New and Best Practices:



 Deep Dive: How Upgrade Works in a Multitenant Environment:



Oracle ACE Dinner:





Terça

 Oracle Optimizer: What's New in Oracle Database 12c?


 Oracle RAC 12c (12.1.0.2) Best Practices:




 Design and Implement Your Own Self-Service Enabled Private Cloud with Oracle EM12c:


 Mining the AWR: Alternative Methods for Identification of the Top SQLs in Your Database:



 Oracle Indexes: From the Concept to Internals:



Quarta

  OakTable: Augmenting SQL Monitor:




 AWR DB performance Data Mining:


 Obscuring Data in Oracle 12c with Oracle Data Redaction:


 Implementing Oracle Database12c's Heat Map and Automatic Data Optimization for Database Storage Performance and Cost:



 Nothing to BLOG About - Think Again:



Quinta

 Top 10 Oracle Database Tuning Tips and Techniques:


 DB12c: All You Need to Know About the Resource Manager:



 Oracle Database 12c New Features for Developers:


 Creative 12c Redo Maneuvers:



Até 2016 :)