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
Tuesday, May 18, 2010
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.
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.
Marcadores:
capacity planning,
dbms_random,
oracle,
pl/sql,
random numbers
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
É 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
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!
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.
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
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?
Tudo Ok faça DROP e crie o INDEX sem a opção NOSEGMENT.
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é,
Subscribe to:
Posts (Atom)