Fonte: http://www.catswhocode.com/blog/10-sql-tips-to-speed-up-your-database

Aproveitando a dica do @pinceladasdaweb, dei uma lida no post e vou fazer uma tradução livre aqui, acrescentando meu ponto de vista e mais algumas dicas sobre SQL em um banco de dados relacional:

1. Defina seu banco de dados com cuidado
Um bom banco de dados é um banco de dados bem desenhado, que não gera tanto trabalho para buscar as informaçoes e que não guarda dados duplicados. É um banco que tem uma estrutura clara e com nomes de tabelas e campos identificáveis.
Continuar lendo »

Hoje, aqui na empresa, tive um problema no oracle, depois de uma possivel queda de luz no final de semana dizendo o seguinte quando subi o banco:

SQL> startup
ORACLE instance started.

Total System Global Area 2348810240 bytes
Fixed Size                  2022536 bytes
Variable Size             436208504 bytes
Database Buffers         1895825408 bytes
Redo Buffers               14753792 bytes
Database mounted.
ORA-01172: recovery of thread 1 stuck at block 17589 of file 2
ORA-01151: use media recovery to recover block, restore backup if needed

Wow.. jah pensei, putz, vou ter um bom trabalho durante o dia todo para recuperar o banco.. pq com o Oracle é sempre assim… Ledo engano !

Bastou pedir ajuda aos universitários e cheguei até esta resposta. Então fiz o seguinte:

SQL> shutdown immediate
Database dismounted.
ORACLE instance shut down.
SQL>; startup mount
ORACLE instance started.

Total System Global Area 2348810240 bytes
Fixed Size                  2022536 bytes
Variable Size             436208504 bytes
Database Buffers         1895825408 bytes
Redo Buffers               14753792 bytes
Database mounted.
SQL>; recover database
Media recovery complete.
SQL> alter database open ;

Database altered.
SQL> exit;

Perfeito… resolveu ! Ufa !
Pronto para outra.. hehehe

Coloquei no wiki um script python que gera o arquivo xml para o Oracle SQL Developer, com todas as conexões para os schemas do banco. Podendo este ser importado pela ferramenta, facilitando assim a vida de quem trabalha com ela.

Já aproveitando, o script tem alguns exemplos interessantes, como strings gigantes, gravação em arquivo, loop while, método “format” da string e claro, como conectar e retornar queryes do Oracle.

Aproveitem e comentem tb …

Link: http://wiki.berlotto.blog.br/index.php?title=Conex%C3%A3o_com_Oracle

ORA-12519 – TNS:listener could not find available handler with matching protocol

Quando está ocorrendo este erro, intermitentemente ao se conectar no Oracle, provalmente foi o número de PROCESSES/SESSIONS/TRANSACTIONS que estourou.
Para verificar se foi isto mesmo, você pode ver os limites do seu banco com o SQL abaixo:

select RESOURCE_NAME, CURRENT_UTILIZATION, MAX_UTILIZATION from v$resource_limit;

Caso sim, então altere seu banco , aumentando o nro de PROCESSES possíveis, lembrando sempre que o numero de SESSIONS e TRANSACTIONS são derivados de PROCESSES, desta forma:

Sessions = (1.1 * Processes)+5
Transactions = (1.1 * Sessions)

Veja na documentação da Oracle:
PROCESSES
SESSIONS
TRANSACTIONS

Para alterar faça o seguinte:
. conecte como sys
. ALTER SYSTEM SET PROCESSES=300 SCOPE=SPFILE;
. ALTER SYSTEM SET SESSIONS=335 SCOPE=SPFILE;
. ALTER SYSTEM SET TRANSACTIONS=369 SCOPE=SPFILE;
. reiniciar o banco
. Validar novamente se as alterações sustiram efeito com o SQL acima.

PS. 300 é um bom número para processos, que é o dobro do padrão. Mas caso necessário ainda mais, e se você tem bastante maquina disponivel, pode até colocar mais …

Sempre que eu tinha que importar um dump de um banco de dados Oracle feito com a ferramenta EXP ( e não EXPDP ) e a tablespaces ( ou as tablespaces ) que existitam no dump não existiam em meu banco de dados, eu tinha um grande trabalho para fazer este import, tento que extrair os comandos DDL de tabelas e indices, depois criar as tabelas, depois os dados e depois os indices. Sendo que se tivesse algo a mais específico não viria e tal …

Mas depois de muitas tentativas de achar a melhor maneira de fazer isto, acabei editando um arquivo .dmp com um editor de textos, no meu casos o Notepad++. E o que acabo encontrando dentro do arquivo além de escritos binários ? Um monte de comandos DDL ! hehehe Isto mesmo … os comandos DDL daquele export efetuado é gravado como texto no arquivo de dump do Oracle.

Sendo assim, pensei…
Por que não editá-lo ??

Sim ! Editei-o-o-o !

Fiz um replace-all do nome da tablespace incorreta, juntamente com as aspas para não ter erro, para o nome da minha tablespace correta.

Salvei ! Fechei ! Importei !
Advinha ? FUNCIONOU perfeitamente… parecia um dump original do Oracle ! hehehe

Só não sei se outro tipo de alteração nos arquivos de dump irão funcionar como este, mas a troca da tablespace funcionou !

Resumo da história:

--Exportar banco
exp [usuario]@orcl file=[path]/dumporacle.dmp .......
--Editar o dump dumporacle.dmp e trocar o nome das tablespaces incorretas para as corretas.
--Importar o dump
imp [usuario]@orcl file=[path]/dumporacle.dmp ......

Falow pessoal !

Aqui ( http://www.orafaq.com/faqjdbc.htm ) tem a resposta para estas e algumas outras questões.

Conexão ao Oracle
Banner do banco ao conectar
JSP
JServer
JSQL
Stored Procedures em Java

Divirtam-se…

© 2010 Sérgio Berlotto - Blog Pessoal Obrigado por nos visitar ! Assine o RSS para não perder as novidades! Suffusion WordPress theme by Sayontan Sinha