Alguns diferenciais do Oracle - Isso é um espanto!

Coloque aqui tutoriais (por enquanto, sobre qualquer assunto relacionado a Oracle) e apostilas.
Responder
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

O texto abaixo foi retirado a muito tempo de um grupo de emails de Oracle. Foi escrito pelo Chiappa em resposta a um cara que estava colocando em dúvida o oracle... Eu estava iniciando com Oracle naquela época. (Não precisa dizer que eu quase chorei quando li o texto abaixo, heheh). Compartilho com vocês)
Oi, colega : q eu saiba, o melhor lugar onde é descrita a tecnologia é mesmo a documentação Oracle, EM ESPECIAL o manual "Server Concepts", mas também algo no "Admin Guide". Dos muitos pontos aí expostos, penso q você TEM que deixar claro as principais diferenças do Oracle em relação à maioria dos outros BDs :

a) LOCKS : no Oracle leituras NUNCA são bloqueadas por locks, e leituras NUNCA bloqueiam nada. Assim, ao contrário de outros DBs , MESMO que no momento usuários estejam alterando/usando registros, um relatório gerencial (que só faça SELECT) vai terminar sem problemas, E com dados consistentes. Da mesma maneira, se se disparar uma consulta, mesmo que ENORME, o banco não vai por NENHUM lock, permitindo portanto que outros usuários alterem as informações. Isso é vital se você vai ter grande número de usuários processando simultaneamente (em outros DBs, você precisa de locks até para leitura, o controle interno disto acaba sendo oneroso para a máquina e limita FORTEMENTE a escalabilidade).

b) consistência de leitura : numa decorrência de a) , no Oracle AUTOMATICAMENTE há consistência d eleitura. Assim, uma query que começou, digamos, no dia 26/12/2001 às 13:00:01, quando terminar vai "enxergar" os dados como estavam no dia 26/12/2001 às 13:00:01, MESMO QUE após isso outros usuários tenham COMITado, DELETADO, alterado, etc. Em outos DBs, para se ter isso o programador TEM que fazer locks nessa programa que faz leituras, caindo nas desvantagens de a).

c) independência de plataforma : PRINCIPALMENTE no SQL Server, mas também em outros DBs você está limitado drasticamente à escolha de plataformas possíveis, ao passo que no Oracle você pode optar por Windows NT, Linux (várias distros), UNIX (vários), AIX ou mainframes. Assim, se hoje você está usando, digamos, NT, e amanhã você esbarrou numa das limitações do SO (como número máximo de discos, CPUs, etc), SE o seu banco for Oracle você consegue migrar facilmente, se for outro banco a migração vai variar de difícil a IMPOSSÍVEL.

d) adaptabilidade : praticamente TODOS os principais aspectos do BD Oracle são configuráveis/controláveis, o que permite um altíssimo grau de ajuste à sua máquina/aplicação em particular. Isto não poderia ser diferente, dado o item c) - de modo a conseguir independência de SO/hardware, o Oracle cria e usa o seu próprio cache, a sua PRÒPRIA área de memória, etc .

e) confiabilidade : TODOS os itens acima estão presentes desde as versões iniciais do banco Oracle , há quase 20 anos - obviamente esse códio está MUITO mais depurado do que BDs que implementaram estas características há um ou dois releases atrás.
Editado pela última vez por dr_gori em Sáb, 20 Jan 2007 2:59 pm, em um total de 1 vez.
Junior
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 9
Registrado em: Qua, 02 Jun 2004 4:00 am
Localização: são Paulo - SP

Esse Chiapa é fogo!

Eu participo de um fórum que ele responde todas..

ele tem uma didatica otima!
lzanette
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Qua, 11 Ago 2004 1:56 pm

Em relação ao ítem B, não deveria ser citado que, se a área de Rollback não for suficiente para se guardar todos os inserts,updates e deletes que forem feitos enquanto teu Select está rodando, o mesmo cairá por :

ORA-01555: snapshot too old: rollback segment numb

Ou estou enganado?
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Exato! De acordo com manual de erros, isso deve ser solucionado da seguinte forma:
Action: Use larger rollback segments.
Ou seja, aumente a area de rollback! :-o
miltonbastos
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 22
Registrado em: Ter, 19 Mai 2009 12:40 pm
Localização: Curitiba - PR

Izanette: o que ele citou foi a respeito de SELECT, que nenhum Select gera
Lock, e ele sempre tem um retorno.

Esse erro de "snapshot too old" NÃO acontece quando se faz select, e sim com inserts, deletes e updates, conforme você mesma falou.

Uma outra maneira de resolver esse problema é colocar commits parciais.
Por exemplo: é comum dar esse erro de snapshot too old se rodar um script que tenha 10 mil inserts consecutivos, com commit somente no final deles.
Se der o erro, inclua commits intercalados, a cada 500 inserts, por exemplo.


Abraço
Avatar do usuário
fbifabio
Moderador
Moderador
Mensagens: 199
Registrado em: Ter, 22 Fev 2011 1:51 pm
Localização: São Paulo - SP
Contato:

Pessoal,

Aproveito para compartilhar links que eu achei muito interessantes, que falam sobre Oracle e que fazem comparações entre Oracle e outros BD´s:
- http://www.delicious.com/fbifabio/Vis%C3%A3o_Geral


[]s
Fábio Prado
www.fabioprado.net
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes