Tuesday, May 18, 2010

Pesquisa global de salarios em TI - 2010

Estes dias encontrei esta pesquisa sobre salários na área de TI com foco nas certificações dos profissionais.
Bem legal para quem quiser saber como anda a valorização das carreiras tecnicas por aí .

Short url : http://migre.me/DuCQ

http://www.globalknowledge.com/training/generic.asp?pageid=2614&country=United%20States

Oracle PL/SQL - Random number generator

Semana passada eu caí em uma situação que precisa buscar uma porção de dados de variados entre as 5 opções que eu tinha.Fiz um teste com a DBMS_RANDOM usando a função VALUE.
Ficou 10 !Do jeito que eu queria.



select f.column1,
       f.column2 -- itens variados
       f.column3
from dbajcc.my_tab f
where f.column1 = x
and rownum < 1000 -- um range de x linhas
order by  dbms_random.value ;


Esta última linha resolveu sem problema o que eu queria.



Thursday, May 13, 2010

Estabelecendo prioridades precisas e importantes

Livro Know-How de Ram Charan capítulo 8 página 177 .

É SEGUNDA-FEIRA DE MANHÃ - E AGORA?


...
"Quando você seleciona prioridades,tem de escolher entre quatro critérios:o que é importante;o que é urgente;o que é de longo prazo em relação ao que é de curto prazo;e o que é realista em relação ao que é visionário.Se você não fizer escolhas entre os critérios porque quer fazer tudo de uma só vez,o resultado será confuso."
...


Ram Charan

OWB 11.2 integrado com o Oracle Database 11gR2

Esta semana fiz a configuração do OWB 11.2 no Oracle Database 11gR2.De inicio tive problemas com um "abort"! inesperado no meio da configuração(que demorava  mas de 30 minutos) .Como o banco de dados que eu estava tentando configurar fica em uma localização remota 7.900 KM mais ou menos.Conclui que o problema era rede.Testando localmente configurei em mais ou menos 10 minutos.

Para o uso das feartures integradas não é preciso licença,pois já vem licenciada juntamente com o banco de dados 11g.Feature Adicionais são licenciadas a parte.

Link para a home do OWB na OTN  : http://migre.me/EIKT

Oracle - SQL - Execution Plan - Merge Join Cartesian

Muitas e muitas vezes recebi reclamação dos meus amigos desenvolvedores sobre SQL lento.
Aí quando você pede o SQL pra dar uma olhada e faz um "simples " explain plan,que é simples mas com muitas informações realmente importantes para quem escreve SQL,você encontra um MERGE JOIN CARTESIAN ou coisa do tipo.

Minha experiência.Dificilmente precisei fazer um Cartesian Join na minha vida e mais dificil ainda encontrei alguem que criou o SQL me dizer o motivo "daquilo" ou de aquilo está acontecendo.Na maioria das vezes é falta de condição/predicados de join entre as tabelas.E com uma simples conferencia você acha o erro.Pode existir outras causas remotas,mas em 90 e tantos % das vezes é SQL mal escrito.

Como esta semana recebi mais uma vez  um caso destes ,resolvi postar  o ocorrido e alertar para quem não conhece o principal moitvo do fato ocorrer!

A SQL é usada para manipulação de dados em um banco de dados relacional,sempre tenha definido o que você precisa trazer bem como as condições que você deve "setar" no código para trazer somente o que você realmente precisa.E sempre veja o plano de execução para ver se tem como melhorar!
Escreva o SQL fazendo os ajustes necessários,no final o resultado é bem mais satisfatório!

VPN - LogMeIn Hamachi

Fechei uma VPN fácil fácil com o LogMeIn  Hamachi.Agora tenho meus dois PCs conectados por uma Virtual Private Network.Private mesmo.
E o compartilhamento funciona Ok.Precisando acessar o PC remoto faço um mstsc .Bem melhor que o próprio LogMeIn com conexão web.Adeus telinha minúscula pra enxergar.

Sunday, May 09, 2010

Eles mentiram para mim : VMWare Workstation + WinXP

Dias atrás tive um pequeno incidente com o meu HD Externo e como estav usando um novo Desktop no escritório fiz as devidas instalaçóes dos programas que eu vinha usando.Tenho algumas VM's para testes e quando tentei subir elas o WinXP me retornava erro ou melhor o sw Vmware 6.5  me gerava erro dizendo que os arquivos estavam corrompidos.Fiz tudo que pude para deixar o HD mais consistente possível pois achava ser problema do incidente que tive com ele.Hoje consegui um tempo para testar no Ubuntu,antes de   jogar fora as VM's que tanto me ajudou no meu Lab pessoal.

Instalei o Virtual Box x64 na ultima versão no meu Ubuntu 10 x64 ,criei uma VM e usei os discos existentes no meu HD Externo.Para minha surpresa tudo funcionou certinho e subiu meu ambiente com Oracle EE 11gR2 + ASM tão usado para estudo!!

Só tive que prestar atenção na ordem de adição dos discos pois tive que seguir a orderm de que foram criados pois deu erro com eles fora de ordem.

Achei legal compartilhar esta informação.

Já não confiava no Windows em muitos quesitos.Bom,este é mais um para a minha lista.

Viva ao Virtual Box e ao Ubuntu.

Go Open Source !

JC

Saturday, May 08, 2010

Oracle - Usando Virtual Indexes

Quer testar a alteração de um plano de execução sem criar um índice físico no Oracle?
O uso da opção NOSEGMENT no comando CREATE INDEX é um recurso muito útil quando aparece a dúvida de criar um INDEX e saber se realmente ele fará efeito m um determinado plano de execução.
Claro que com Know-How da coisa você já sabe onde ajustar para que tenha um efeito desejado até chegar em um ponto aceitável.

Por padrão o uso da opção NOSEGMENT não faz efeito imediato na sua sessão , por isso preciso fazer uma alteração no parâmetro "_use_nosegment_indexes" para TRUE.

ex. 1

ALTER SESSION _use_nosegment_indexes=TRUE ;

Depois faça seu CREATE INDEX  e no final coloque a opção NOSEGMENT.

ex.2
CREATE INDEX  my_index ON my_table(my_column) NOSEGMENT;

Teste o seu plano de execução novamente e observe se realmente faz sentido criar o INDEX.

Tudo Ok faça DROP e crie o INDEX sem a opção NOSEGMENT.

Até,

Thursday, April 15, 2010

PL/SQL Challenge

Para quem curte PL/SQL existe um site/local novo para testar os conhecimentos!


Peguei esta dica no Linkedin do Felipe da Silva .

Abraços,

JC

Friday, March 12, 2010

oradiag_oracle - Oracle 11gR2 - Disabling the ADR

Voltei aqui!

Fazendo a limpeza do filesystem de um  servidor Oracle me deparei coma seguinte situação :

[oracle@myserver oracle]$ du -sch *
360M admin
5.8M cfgtoollogs
8.0K checkpoints
1.2G diag
988K import_ONLINE.log
16K oraarch
8.9G oradiag_oracle
4.5G product
15G total
[oracle@amhston1 oracle]$ 



8.9 GB de arquivos sendo que a maioria são arquivos de TRACE.

.../oradiag_oracle/diag/clients/user_oracle/host_919093865_76
[oracle@myserver host_919093865_76]$ du -sch *
2.3M alert
8.0K cdump
8.0K incident
8.0K incpkg
24K lck
296K metadata
8.0K stage
8.0K sweep
8.9G trace
8.9G total


Porcurando no metalink,já que no 11gR2 muitas coisas mudaram,me deparei com a nota 
ID 454927.1 .

Vamos executar os passos sugeridos na nota para desabilitar estes traces,já que estou com pouco espaço no flesystem.

adrci

ADRCI: Release 11.2.0.1.0 - Production on Fri Mar 12 11:00:19 2010

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

ADR base = "/opt/oracle/oradiag_oracle"
adrci> show base -product client
ADR base is "/opt/oracle/oradiag_oracle"
adrci>  set base /opt/oracle/oradiag_oracle
adrci> exit


Vendo o trace file :

 more /opt/oracle/oradiag_oracle/diag/clients/user_oracle/host_919093865_76/trace/ora_13830_47831278068960.trc
Trace file /opt/oracle/oradiag_oracle/diag/clients/user_oracle/host_919093865_76/trace/ora_13830_47831278068960.trc
2010-03-11 15:40:09.488543 : --- TRACE CONFIGURATION INFORMATION FOLLOWS ---
2010-03-11 15:40:09.490799 : New trace stream is /opt/oracle/oradiag_oracle/diag/clients/user_oracle/host_919093865_76/trace/ora_13830_47831278068960.trc
2010-03-11 15:40:09.490827 : New trace level is 16
2010-03-11 15:40:09.490842 : --- TRACE CONFIGURATION INFORMATION ENDS ---
2010-03-11 15:40:09.490862 : --- PARAMETER SOURCE INFORMATION FOLLOWS ---
2010-03-11 15:40:09.490881 : Attempted load of system pfile source /opt/oracle/product/11.2.0/db_1/network/admin/sqlnet.ora
2010-03-11 15:40:09.490895 : Parameter source loaded successfully
2010-03-11 15:40:09.490910 : 
2010-03-11 15:40:09.490924 : Attempted load of local pfile source /home/oracle/.sqlnet.ora
2010-03-11 15:40:09.490937 : Parameter source was not loaded
2010-03-11 15:40:09.490950 : 
2010-03-11 15:40:09.490963 :  -> PARAMETER TABLE LOAD RESULTS FOLLOW <-
2010-03-11 15:40:09.490992 : Successful parameter table load
2010-03-11 15:40:09.491010 :  -> PARAMETER TABLE HAS THE FOLLOWING CONTENTS <-
2010-03-11 15:40:09.491029 :   CE_UNIQUE_CLIENT = ON
2010-03-11 15:40:09.491044 :   ADR_BASE = /opt/oracle
2010-03-11 15:40:09.491057 :   NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)
2010-03-11 15:40:09.491071 :   TRACE_DIRECTORY_CLIENT = /home/oracle/temp
2010-03-11 15:40:09.491084 :   TRACE_TIMESTAMP_CLIENT = ON
2010-03-11 15:40:09.491097 :   TRACE_LEVEL_CLIENT = 16
2010-03-11 15:40:09.491110 :   TRACE_FILE_CLIENT = SQLNetTrace
2010-03-11 15:40:09.491123 : --- PARAMETER SOURCE INFORMATION ENDS ---
2010-03-11 15:40:09.491139 : --- LOG CONFIGURATION INFORMATION FOLLOWS ---
2010-03-11 15:40:09.491180 : Log stream will be "/opt/oracle/oradiag_oracle/diag/clients/user_oracle/host_919093865_76/alert/log.xml"
2010-03-11 15:40:09.491199 : Log stream validation not requested
2010-03-11 15:40:09.491213 : --- LOG CONFIGURATION INFORMATION ENDS ---

Tem a possibilidade de fazer um purge dos arquivos.
Neste caso fiz assim :

[oracle@myserver oradiag_oracle]$ adrci

ADRCI: Release 11.2.0.1.0 - Production on Fri Mar 12 12:55:48 2010

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

ADR base = "/opt/oracle/oradiag_oracle"
adrci> purge -age 10 -type trace
adrci> exit
[oracle@myserver oradiag_oracle]$ cd diag/clients/user_oracle/host_919093865_76/
[oracle@myserver host_919093865_76]$ du -sch *
2.3M alert
8.0K cdump
8.0K incident
8.0K incpkg
24K lck
296K metadata
8.0K stage
8.0K sweep
4.3M trace
6.9M total
[oracle@amhston1 host_919093865_76]$ 


Ou  no sqlnet.ora do client e inserindo o parametro DIAG_ADR__ENABLED=OFF .

Doc para help :

http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/trouble.htm#NETAG1524

Abs,

Julio Cesar Correa