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…
Últimos Comentários
(2 weeks ago)
(2 weeks ago)
(2 weeks ago)
(2 weeks ago)
(3 weeks ago)
(3 weeks ago)
(7 weeks ago)
(10 weeks ago)
(10 weeks ago)
(11 weeks ago)