Arquitetura do Oracle Database em menos de 10 minutos (Video – Inglês)

1

Posted on : 21-06-2009 | By : .rafa | In : Banco de Dados, Oracle

Este é um video de Stephane Faroult sobre a arquitetura do Oracle database. Ele mostra no video como uma uma bela descricao de o que acontece quando inicia o Oracle e quando você executa uma declaração. O video está em inglês.
Assista:



SQL Server 2008 System Views Map

0

Posted on : 17-06-2009 | By : .rafa | In : Banco de Dados, MSSQL

Download the SQL 2008 System View Map

Para quem gosta de visualizar melhor os relacionamentos entre as tabelas e views do seu banco de dados a Microsoft SQL Server 2008 System Views Map mostra as views incluidas no SQL Server 2008, e seus relacionamentos.

Fonte: DBANotes

Script de criação dos objetos de um owner no ORACLE

0

Posted on : 25-03-2009 | By : .rafa | In : Banco de Dados, Oracle

Preciso gerar um script de criação de todos os objetos para um determinado usuário do banco.

Existe algum select em alguma tabela de metadados que posso fazer isso?

1. Usando export com rows=n e import pode ajudar e muito;
-- exportando as tabelas do schema RAFA
ex.: exp rafa/stoever file=./rafa.dmp grants=n statistics=none rows=n

2. Na versão 10g ou superior com o expdp (DataPump 10g);
-- Realizando a exportação apenas dos metadados
ex.: expdp rafa/stoever directory=data_pump_dir dumpfile=rafa.dmp content=metadata_only

3. Utilizar um programa de engenharia reversa;
ex.: Recomendo o Toad

4. Via script SQL
ex.: Read the rest of this entry »

Fake/Virtual Index (Indice Virtual)

1

Posted on : 11-09-2008 | By : .rafa | In : Banco de Dados, Oracle, PL/SQL

Após muitas leituras sobre tuning e performance, achei algo interessante e rápido para postar aqui no site e que possa ser muito util para os programadores e administradores de Banco Oracle.
Preciso melhorar a performance do meu SQL, será que esse indice vai me ajudar?

Uma boa pergunta, pois até então criar um indice em uma tabela sempre há um custo.
Porem como irei saber se aquele indice vai ser útil mesmo sem poder testar na prática?
Uma das novas features do 11g é criar indices invisiveis, não interferindo no ambiente(produção como no exemplo), uhuuuu claro estou dizendo em produção nada em ambiente teste, pois nem todo mundo tem essa maravilha que é um ambiente de teste bom e legal p/ testar sua aplicação.
Ai vem o X da questão, nas versões anteriores(8i, 9i e 10g) não tem nada para nos ajudar?
Isso mesmo lendo um bucado achei o FAKE INDEX ou VIRTUAL INDEX.

Ok, agora vou mostrar com um exemplo simples do seu funcionamento.

1. Lembrando que esta prática serve para o Oracle informar, se o indice a ser criado, realmente será usado pelo otimizador e seu custo.
2. Ao ser criado, estara somente no dicionario de dados e não será criado o indice mesmo, não haverá segmentos (NOSEGMENT).
3. Há um parametro não documentado pela oracle, que faz parte do Oracle Enterprise Manager Tuning Wizard para que esta pratica seja bem sucessida.

Ex.:
Tabela teste com 398698 registros Read the rest of this entry »

Query’s SQL para XML

0

Posted on : 17-07-2008 | By : .rafa | In : Banco de Dados, Oracle, PL/SQL, Programação

Rapidinha: O oracle tem como default a função de transformar query's sql para XML

Exemplo:

 
SET long 5000
SET pagesize 5000
SET linesize 132
SELECT
     dbms_xmlgen.getxml(SELECT * FROM user_tables’) XMLQUERY
 FROM dual;
 

Pivot ou CrossTab (invertendo linhas em colunas)

4

Posted on : 02-06-2008 | By : .rafa | In : Banco de Dados, Oracle, PL/SQL, Programação

Imagine você está tentando para criar um jogo de resultados onde os registros precisam ser colunas, ou vice-versa.
A essência, você precisa "girar" os registros em colunas, ou vice-versa.
Muitas vezes há relatorios que exigêm isto e para que não precisarmos de criar functions ou qualquer outra coisa para solucionar isso podemos usar o chamado pivot ou crosstab queries.

Uma questão de pivot simples é realizada fazendo o seguinte:
1. Acrescente algum tipo de conta ou número de fila ao seu questionamento, se necessário para o agrupamento;
2. Então use sua query original como uma sub-query;
3. Use "decode" para se transformar os registros em colunas;
4. Use "MAX ou SUM" para "agrupar" os registros múltiplos em únicas coluna. E não pode ser esquecido de agrupar.

Exemplo prático: Read the rest of this entry »