Alex Zaballa

bd 0

Foreign Keys não Indexadas

Por padrão, o Oracle não cria índices nas colunas de Foreign Keys e isto pode acarretar em problemas de desempenho e até mesmo deadlocks. Um exemplo disso, é a atualização de registros na tabela pai, onde o Oracle precisa verificar os registros filhos. Caso não exista um índice, é necessário...

12c 0

Recuperação de blocos corrompidos com o RMAN

No dia-dia de um DBA, um usuário do sistema pode reportar que ocorreu o erro ORA-01578. Ao saber disso, o DBA deve dar uma olhada no alert.log e procurar por um erro similar a este: Corrupt block relative dba: 0x01c00083 (file 7, block 131) Bad header found during buffer read...

12c 0

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:<sql_id>|<sql_id>] … rest of event specification’; O SELECT abaixo será usado como exemplo: select * from...

pl/sql 0

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 “SQLPlus on steroids”, SDSQL (SQLDeveloper SQL), SQLPlus++, ou como o Jeff Smith chama “SQL Developer meets SQL*Plus”. Onde baixar a versão atual: http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/sqldev-41ea-2372780.html Após baixar a ferramenta,...

12c 0

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: https://blogs.oracle.com/UPGRADE/entry/non_cdb_architecture_of_oracle 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...

bd 0

_FIX_CONTROL

Na versão 10.2.0.2 do banco de dados Oracle, surgiu um parâmetro  oculto chamado _FIX_CONTROL, que pode ser usado para habilitar ou desabilitar certas correções de bugs. Este parâmetro é mais comumente associado ao otimizador, mas pode também ser usado em problemas de outras áreas. Lembre-se que por se tratar de...

pl/sql 0

Lendo variáveis do SO através do PL/SQL

Caso você tenha acesso a um servidor de banco de dados Oracle, mas não tenha acesso ao sistema operacional e deseja obter os valores das variáveis de ambiente, como por exemplo o ORACLE_HOME, ORACLE_SID, ou qualquer outra variável de ambiente do sistema operacional; você pode utilizar a procedure GET_ENV da...

12c 0

12c – READ Object Privilege and READ ANY TABLE System Privilege

 No Oracle Database 12.1.0.2, podemos utilizar o privilégio de objetos READ e o privilégio de sistema READ ANY TABLE  para permitir consultas em tabelas, visões, visões materializadas e sinônimos. Mas e qual a diferença entre estes privilégios e os privilégios que já utilizamos, ou seja, o SELECT e SELECT...

bd 0

Como alterar o valor de um parâmetro de outra sessão

Imaginem um cenário onde é necessário alterar o valor de um parâmetro de uma sessão que já está aberta no banco de dados e sem uma interface SQL para realizar um ALTER SESSION. Para resolver este problema, podemos utilizar as procedures SET_INT_PARAM_IN_SESSION e SET_BOOL_PARAM_IN_SESSION da package DBMS_SYSTEM. dbms_system.set_bool_param_in_session( sid     IN...

bd 0

Como remover um SQL Statement da Shared Pool

Imaginem um cenário onde é necessário limpar da shared pool um comando SQL, para que na próxima execução seja realizado um hard parse deste SQL. Sabemos que para limpar toda a shared pool, podemos utilizar o comando ALTER SYSTEM FLUSH SHARED_POOL. Porém, ao executar este comando em um ambiente de produção haverá...