2006-11-29

Oracle Global Cache Blocks Lost

Undesirable Global Cache Statistics
The following are undesirable statistics, or statistics for which the values should always be zero or near-zero.

global cache blocks lost--This statistic reveals any block losses during transfers and high values may indicate network problems. When using an unreliable IPC protocol such as UDP, the value for 'global cache blocks lost' may be non-zero. If this is the case, then the ratio of 'global cache blocks lost' divided by 'global cache current blocks served' plus 'global cache cr blocks served' should be as small as possible. A non-zero value for 'global cache blocks lost' does not necessarily indicate a problem, because Oracle retries the block transfer operation until it is successful. Unlike TCP/IP, UDP/IP is considered unreliable because UDP/IP provides very few error recovery services.
global cache blocks corrupt--This statistic indicates whether any blocks were corrupted during transfers. High values for this statistic indicate an IPC, network, or hardware problem. "


"The Global Cache Blocks Lost Oracle metric event test checks whether a global cache request did not complete due to a timeout. A timeout is caused either by a network communication error or by a high system load."

2006-11-21

UNION

Já deve ser conhecido mas como é bastante importante do ponto de vista de optimização aqui vai.

select a, b from t1
union all
select c, d from t2

UNION ALL - não elimina duplicados, pelo que é mais rápido que UNION (que elimina os duplicados).

select a, b from t1
union
select c, d from t2

se se pertender eliminar duplicados em cada uma das parte de um union all mas não na união final usar por exemplo o DISTINCT

select distinct a, b from t1
union all
select distinct c, d from t2


regra: Se se souber se antemão que não vamos ter duplicados, ou não é importante eliminar duplicados usar UNION ALL.

2006-11-17

Coisas novas previstas para a Oracle 11g

Algumas coisas novas previstas na 11g que vão dar um jeitão:

- updates da base de dados (patchs, e upgrades) em RAC sem downtime!

- possibilidade de usar sequencias sem utilizacao da tabela dual (sequence.nextval).


- cache de resultados de SQL e de PL/SQL ( /*+result_cache*/ )

- Fine Grained Dependancy Tracking - quando se altera uma tabela/procedimento (por exemplo uma nova coluna) não vai invalidar todos os objectos relacionados

- Os DML triggers são mais rápidos e poder-se-á estipular uma ordem de corrida. Poder-se-á mesmo ter triggers que são ao mesmo tempo before after row e statement.

- Novo tipo : SIMPLE_INTEGER mais rápido que o PLS_INTEGER e não pode ser nulo.

- UTL_SMTP, UTL_TCP e UTL_HTTP com implementação de segurança: ainda estou para ver o que isto é exactamente.

- CONTINUE keyword para os loops.

- Oracle Audit Vault - Segurança de dados

- um objecto pode agora estar "disable" e não somente "enabled" e "invalid"

- operações em LOBs mais rápidas - espero bem que sim!!

- Colunas Virtuais - coluns que na realidade são o resultado de funções
create table t (col1 number, col2 number, soma as (c1+c2) virtual;

2006-11-16

Escrever no alert log

Para escrever no alert log as tuas msg proprias

dbms_system.ksdwrt(2,'A line of text para o alert log');

Tem de se ter permissão de execute do package

se se usar 1 em vez do 2 vai para o trace file e se se usar 3 vai para os dois :-)

dbms_system.ksdwrt(1,'A line of text para o trace file');
dbms_system.ksdwrt(3,'A line of text para o trace file e para o alert log');

2006-11-15

NULLs nos COUNT

Os nulos não são contados se for especificado a coluna num count!
Então: com COUNT usar sempre (*) or uma coluna da PK

SELECT COUNT (*) FROM A;

COUNT(*)
----------
10

SELECT COUNT (OBS) FROM A;

COUNT(A)
-----------
3

SELECT COUNT (*) FROM A WHERE OBS IS NULL;

COUNT(*)
----------
7

"If you specify 'expr' then COUNT returns the number of rows where 'expr' is not null." -- Oracle SQL Reference

A saber para optimizar

Passar parametros com IN OUT com NOCOPY -> passa por referencia (por ponteiro) => mais rápido e deve ser obrigatório para passagem de CLOBs, BLOBs! Problema: se o procedimento/função der excepção o valor é mesmo assim modificado!
Assim o processo normal de um IN OUT é que a variavel só é alterada no final da execução (sem raise de excepção) do programa.
No IN não é usado NOCOPY porque já é isso que é efectuado.


usar DETERMINISTIC numa função significa que o seu resultado é igual para o mesmo input => permite o uso de cache
exemplo? uma função de retorna TRUE/FALSE se um dado número inteiro é par ou não: function isPar(x integer) return boolean determinist;

O que aprendi hoje /What I learned today

Lendo problemas e descobertas de outros ajuda-nos muitas vezes a perceber o que fizemos de errado e conhecer algumas coisas peculiares.

Reading problems and finding of others help us realize what we did wrong and to find some peculiar stuff.
Try this code:


Tom Kyte Mantra

From his Blog  :-)

--
"You should do it in a single SQL statement if at all possible.
If you cannot do it in a single SQL Statement, then do it in PL/SQL.
If you cannot do it in PL/SQL, try a Java Stored Procedure.
If you cannot do it in Java, do it in a C external procedure.
If you cannot do it in a C external routine, you might want to seriously think about why it is you need to do it…"

Vida, oh Vida!

Hoje a rádio teve o prazer de relembrar uma canção anglo-saxonica completamente estúpida, mas que teve sucesso em portugal.

Se fosse em português ninguém ouviria isto!
Talvez se fosse o João Pedro Pais ouvissem , pois ele também tem canções sem nexo!

Os meus amigos já me ouviram vezes sem conta gozar com está canção.

How do you explain to that to a kid?

Desculpem lá não ter traduzido

----
A teacher in junior school somewhere... asked the children what was the occupation of their parents

Teacher: George, how old are you?
George : i am 7 years old, miss
Teacher: ..and what is the occupation of your father?
George : he is a dentist, miss
Teacher: ... and what is the occupation of your mother?
George : She is a lawyer, miss
Teacher: Excellent, George.

Teacher kept asking the children, when it was the time for little Susan to answer her teacher's question.
Susan looked a little scaried.

Teacher: And you little Susan
Susan : Yes miss
Teacher: What is the occupation of your father?
Susan : well...
Teacher: ?
Susan : ..he.. he.. he is..
Teacher: ???
Susan : He is working in the post office, delivering mail..
Teacher: Come on Susan, we must be proud of our parent's job. You there little Nick, what's your father's occupation?

Nick stood up, full of pride and replied :
- My father is a pianist in a brothel, miss

2006-11-14

Teste de uma alternativa à tabela DUAL

Encontrei o seguinte artigo e cheguei à conclusão que a alternativa apresentada à tabela DUAL já não oferece as vantagens faladas com (pelo menos) a versão 10.2.0.2 da DB.

2006-11-13

Onde estão as séries de Ficção Cientifica?

Pois é, nos 3+1 canais (sem cabo) não existe nenhuma série de ficção cientifica.
Temos um grande grupo de séries do estilo "vamos lá descobrir o mistério" (CSI, Dr. House, Números, etc..), mas se bem que essas séries tenham algo de ficção e científico, não apresentam nenhum visão do futuro/presente como as séries de culto "Caminho da Estrelas", Babylon 5, "Star Gate".
Séries tipo Alias, Perdidos e 24 Horas (e a saudosa "Ficheiros Secretos") são intensamente de acção e conspiração e pelo menos têm uma certa sequência, mas fica sempre em mim a insatisfação de uma série com a existência de novos mundos e civilizações.
Antes disto tinhamos só accção "medieval" com a Xenna e o Hercules.
Porquê parece que não há variedade de temas?
Uma serie de Policial, uma serie de conspiração, uma série de ficcão e somente UMA telenovela à noite por canal seria pedir muito?

Há uns meses cheguei a ver uns 2 episódios de uma nova série: 4400 que nunca mais foi emitida. Que aconteceu?

E já agora ...já viram as horas a que as mencionadas séries acima passam?
(Penso que a Perdidos é a única que actualmente dá/dava sem ser depois da meia-noite).


E ao domingo de tarde temos de reaturar o "Dança Comigo"?

Por isso é que gosto do video/DVD...escolhemos o lixo que queremos ver!

Statler & Waldorf From the Balcony

Lembram-se dos velhotes dos Marretas?

Pois estão de volta a criticar filmes no site movies.com
http://movies.go.com/muppets/index

é de partir o côco, mas é necessário saber inglês!!
São mordazes!!!

Esqueçam os comerciais que aparecem no inicio :-(.

Algumas frases memoráveis deles:

Statler: What would you do if you were a rich man?
Waldorf: I'd buy the network and cancel this show!


Statler: You know, this show really improves with age!
Waldorf: Why? Because the jokes get better?
Statler: No! Because my hearing gets worse!


Statler: What would you do if you were a rich man?
Waldorf: I'd buy the network and cancel this show!



Actualização: foram retirados os videos que já não se encontram disponíveis :-( pois o site já não está disponível :-(

Resolver Soduku em PL/SQL

Descobri que já ouve alguém que resolveu fazer um programa para resolver os problemas resolúveis (sem adivinhar) de Soduku.
Isto é usando a lógica natural do jogo.

Despertou de um Sonho

Uma das canções escutistas que mais gosto!


Despertou de um Sonho
=====================

Sol               Dó7           Sol
Despertou de um sonho... um homem viu
Dó7       Sol     Ré9    Mi-
E fez nascer em cada olhar a semente
Dó         Ré         Sol          Dó9
Da nova alegria, dando a mão a quem precisa
Sol         Dó9
Sempre certos na divisa
Sol   Ré9    Mi-     Lá-     Ré
Caminhando monte acima, renovando a vida.

Sol        Ré
Olhar o mundo como ele o vê
Sol          Ré
Queremos ser a imagem de B.P.
Dó9              Ré
O topo está mais perto dentro de nós
Dó9            Ré
Vamos levar ao mundo a sua voz
Si7             Mi-
A sua voz na razão de viver
Si7           Mi-
O seu viver para construir
Lá             Ré 
Deixando o mundo sempre um pouco melhor
Lá            Ré
Sempre Alerta para Servir

E... Quando ele olhou, em seu redor
Não reparou que a noite agora,
Não era tão noite
E ao romper de um novo dia
Vendo gente que o seguia
Fez-se raíz de uma árvore, renovando a vida.


2006-11-08

"Tu és a água viva"

Hoje estou com outra canção na cabeça e não é a "After all there was another" :-).

É uma adaptação de uma canção existente que o coro de que faço parte fez.

"Infunde o Teu espirito em mim Senhor
faz com que se apaixone por mim.
Que queira fazer morada em mim
E assim tenha sabor a Ti.

Tu és a água viva
Tu és a água pura
Inunda-me, inunda-me
E tudo se transformará em Mim.


Então habitarei na terra que é minha
e eu serei o Teu povo
e Tu serás meu Deus."

Fotografia tirada ontem


Ontem apareceu no céu do Porto dois arco-iris e eu tirei-lhes uma fotografias.
Aqui apresento a que acho que ficou melhor.

2006-11-03

Uma Prenda de aniversário

O meu irmão fez anos e dei-lhe um livro:
- "On the Shoulders of Giants" com comentários de Stephen Hawking.
Este foi um daqueles casos em que sem estar a pensar nisso (isto é, que estava-se a aproximar o aniver´sairo do meu irmão) vi o livro na estante da fnac e pensei logo que era o livro certo!
O meu irmão é um cientista nato!

Este livro traz os trabalhos mais importantes de 5 gigantes da Fisica e Astronomia:
Nicolaus Copernicus - On the Revolutions of [the] Heavenly Spheres - que foi o que deu origem à teoria (na altura) do Sol parado e dos planetas em sua orbita
Galileo Galilei - "Dialogues [or Discourses and Mathematical Demonstrations] Concerning Two [New] Sciences" - um marco importante na física
Johannes Kepler - o quinto livro de "Harmonies of the World" - a descoberta de como os planetas orbitam
Sir Isaac Newton - "The Mathematical Priciples of Natural Philosophy", mais conhecido como "The Principia." - que inclui a elaboração das 3 leis do movimento e da lei gravitacional
Albert Einstein - 7 selecções do "The Principles of Relativity: A Collection of Original Papers on the Special Theory of Relativity" - sobre claro a teoria da relatividade e que alterou a compreensão do espaço-tempo.

O meu irmão adorou a prenda e acho que também vou ler algumas partes depois de ele ter "devorado" o livro.

Bom fim de semana e boas leituras