Showing posts with label oracle. Show all posts
Showing posts with label oracle. Show all posts
Thursday, May 25, 2017
GOUB TECH DAY 2017
Marcadores:
agosto,
Big Data,
brasil,
brazil,
business intelligence,
data science,
guob,
hadoop,
open source,
oracle,
otn,
tech,
technology,
tour,
workshop
Sunday, May 03, 2015
Tira-teima - Oracle DATE datatype - Como o Oracle armazena esse tipo de dados? Internal representation of the DATE datatype
Olá,
Para quem está começando com Oracle e até para quem já trabalha há anos com o produto, o correto é sempre que tiver uma dúvida, buscar informações na documentação oficial e fazer testes para confirmar como funciona . Leia sobre o tema , teste e depois podemos fazer uma explicação.
Basicamente o Oracle armazena o tipo DATE desta forma : DIA, MES , ANO, HORA, MINUTO E SEGUNDO. A máscara deste tipo vai depender do character set configurado e dos parametros de NLS como o NLS_DATE_FORMAT. Existem outros tipos de dados para armazenamento de datas e intervalos de tempo como TIMESTAMP e INTERVAL YEAR TO MONTH por exemplo.Eu me recordo de ter escrito sobre eles anos atrás aqui mesmo no blog. Link http://jccorrea.blogspot.com.br/2010/08/oracle-sql-date-e-timestamp-datatypes.html
Abaixo a documentação oficial dos Datatypes no Oracle
Um ótimo artigo sobre o tema usando a função DUMP para ver a quantidade de bytes e como funciona a representação interna http://www.ixora.com.au/notes/date_representation.htm
Threads antigas no ASKTOM sobre datas e comparação.Parece brincadeira mas vejo as pessoas cometerem os mesmos erros de comparaçoes até hoje!!
Uma das coisas boas da Oracle é que na medida do possível existe uma boa documentação. Já tive que trabalhar com outros produtos e exceto os open sources, você tem dificuldade para encontrar uma boa doc.
Marcadores:
armazena,
comparinson,
datas,
datatypes,
date,
functions,
internals,
oracle,
representação,
representation,
sql,
TRUNC
Friday, January 23, 2015
Oracle - Understanding parallel processing
Para quem tem dúvidas sobre Parallel processing no Oracle. Esse artigo já tem 2 anos mas encontra-se atualísimo. Mesmo com a feature do 11g para o gerenciamento automático do Oracle, essa explicação é bem concisa. https://lnkd.in/eEhfGv5
http://www.tyson1.com/professional/parallel/px_strategy.htm
Marcadores:
cores,
datawarehouse,
large tables; cpu,
oracle,
oracle 10g,
oracle 11g,
parallel,
processing,
thread,
vldb
Tuesday, September 23, 2014
Oracle Pre-Built Developer VMs : maquinas virtuais prontas com produtos Oracle
A Oracle disponibiliza para download algumas VMs prontas para uso para quem está estudando ou testando produtos. Eles chamam de Developer VM's ou Pre-built DeveloperVMs.
Tem duas VMs interessantíssimas para quem é da área de DW/BI : Oracle Big Data Lite e Oracle Data Integrator 12c.
Os arquivos estão zipados e divididos para "facilitar" o download.
O link é este : http://www.oracle.com/technetwork/community/developer-vm/index.html
Tem duas VMs interessantíssimas para quem é da área de DW/BI : Oracle Big Data Lite e Oracle Data Integrator 12c.
Os arquivos estão zipados e divididos para "facilitar" o download.
O link é este : http://www.oracle.com/technetwork/community/developer-vm/index.html
Tuesday, December 14, 2010
Anúncio de emprego - dá pra entender?
Encontrei este anuncio em um site especializado em vagas para TI.
Estes anúncios esquisitos me dão medo!
DBA ORACLE
Perfil: Desenvolvimento de aplicações utilizando Oracle10/11g, MS SQL 2000/2008 com grandes(500GB +) e médio (1100GB) bancos de dados J2EE para apoiar as 3 aplicações web escritas em nível frameworks de desenvolvimento Java,como Hibernate,Spring e Struts. Um forte conhecimento para apoiar, desenvolver aplicações web Java EE usando peixes de vidro, Tomcat e servidores de aplicação Websphere é necessária Oracle em uma plataforma de aplicações web-based 02/01 anos experiência em desenvolvimento de aplicações de servidores padrão usando java padrão (vidro peixe, Tomcat e Websphere) Banco de dados Application (DBA), Application Developer(AP)/Quality Assurance (QA)
Inglês fluente
Enviar currículo com pretensão salarial e disponibilidade para início.
Alguém topa?
DBA ORACLE
Perfil: Desenvolvimento de aplicações utilizando Oracle10/11g, MS SQL 2000/2008 com grandes(500GB +) e médio (1100GB) bancos de dados J2EE para apoiar as 3 aplicações web escritas em nível frameworks de desenvolvimento Java,como Hibernate,Spring e Struts. Um forte conhecimento para apoiar, desenvolver aplicações web Java EE usando peixes de vidro, Tomcat e servidores de aplicação Websphere é necessária Oracle em uma plataforma de aplicações web-based 02/01 anos experiência em desenvolvimento de aplicações de servidores padrão usando java padrão (vidro peixe, Tomcat e Websphere) Banco de dados Application (DBA), Application Developer(AP)/Quality Assurance (QA)
Inglês fluente
Enviar currículo com pretensão salarial e disponibilidade para início.
Alguém topa?
Tuesday, October 26, 2010
unable to see package body on sqldeveloper - SOLVED
Solução :
grants :
GRANT EXECUTE ON DBMS_METADATA TO user_unable_to_see ;
GRANT CREATE ANY PROCEDURE TO user_unable_to_see;
Cabe analisar a segurança ao conceder os privilégios acima.
Oks?!!
Julio Cesar Correa
grants :
GRANT EXECUTE ON DBMS_METADATA TO user_unable_to_see ;
GRANT CREATE ANY PROCEDURE TO user_unable_to_see;
Cabe analisar a segurança ao conceder os privilégios acima.
Oks?!!
Julio Cesar Correa
Marcadores:
oracle,
package,
package body,
pl/sql,
plsql,
sql developer,
sqldeveloper,
TI
Friday, October 08, 2010
How to use Oracle db service_name in jdbc connection string
simple like that:
using only SID :
jdbc:oracle:thin:@10.1.1.5:1521:mydbusing sid or service_name :
Change " : " to " / " .
Marcadores:
connection,
jdbc,
oracle,
service name,
string,
TI
Thursday, September 09, 2010
GUOB TECH DAY 18/10/2010 - São Paulo
Olá,

Está chegando a hora do grande evento sobre tecnologia Oracle no Brasil organizado pelo GUOB com apoio do OTN e LAOUC.
Em breve (18/10/2010) teremos o GUOB TECH DAY 2010 em São Paulo .
Está chegando a hora do grande evento sobre tecnologia Oracle no Brasil organizado pelo GUOB com apoio do OTN e LAOUC.
Veja a lista dos palestrantes internacionais confirmados:
Daniel Morgan (DBA, USA)
Robert Freeman (DBA, USA)
Hans Forbrich (Dev/Applicationes, Canada)
Ben Prusinski (DBA/EBS, USA)
Ronald Bradford (MySQL, USA)
Francisco Munoz Alvarez (DBA, NZ)
E completando a lista nosso principal palestrante, Tom Kyte.
Reserve este dia para um grande momento com os principais autores de artigos e livros sobre tecnologia Oracle.
Prepare sua viagem, divulgue para seus amigos. Não perca esta grande oportunidade.
Em breve abriremos as inscrições para o evento. Esteja associado ao GUOB.
Faça seu cadastro em nosso site para receberes maiores informações.
Faça seu cadastro em nosso site para receberes maiores informações.
--------------------
Mais informações no site do GUOB : http://www.guob.com.br/
Para quem ainda não conhece o GUOB é membro do LAOUC, Latin American Oracle Users Council, entidade que integra os grupos de usuários Oracle na América Latina .
Abraços,
JC
Monday, August 23, 2010
Uninstalling "schema visualizer" from Oracle SQL Developer
Quem instalou um plugin chamado schema visualizer no Oracle SQL Developer e agora quer desisntalar(principalmente porque ele fica tentando abrir um navegador e ir para a o site do fabricante) pode realizá-lo desta forma segundo o site do fabricante:
1. Exit Oracle SQL Developer.
2.Delete file sqldev_path/sqldeveloper/extensions/com.sumsoftsolutions.erd4oracle.sqldev.jar
3.Delete directory
sqldev_path/sqldeveloper/extensions/com.sumsoftsolutions.erd4oracle.sqldev
Where sqldev_path is your SQL Developer installation directory.
Para mim funcionou ok!!!
Tuesday, August 03, 2010
Oracle - SQL - DATE e TIMESTAMP datatypes
Olá,
Vamos falar rapidamente sobre os tipos de dados que armazenam data.
Aqui vamos falar de date,timestamp,timestamp with timezone e timestamp with local timezone.O tipo INTERVAL que armazena intervalo de datas já foi abordado em outro post neste blog.
date : armazena o dia,mes,ano,hora.minuto e segundos.
timestamp : armazena o dia,mes,ano,hora.minuto mais a precisão de segundos que vai de de 0-9.O default(padrão) é 6 .
timestamp with time zone: armazena o dia,mes,ano,hora.minuto mais a precisao de segundos que vai de de 0-9.O default(padrão) é 6 .
A diferença aqui é que é armazenado o deslocamento em relação ao UTC(Cordinated Universal Time) or Greenwich Mean Time por exemplo para a cidade de São Paulo temos "-3:00".
O deslocamento é armazenado juntamente com o dado real no banco de dados.
timestamp with local time zone : armazena o dia,mes,ano,hora.minuto mais a precisão de segundos que vai de de 0-9.O default(padrão) é 6 .
A diferença agora para o tipo acima é que o deslocamento em relação ao UTC não é armazenado juntamente com os dados deste tipo.Funciona assim,de acordo com a configuração de
do time zone de cada sessão do usuário o Oracle mostra o valor correspondente ao que foi armazenado.
Para ficar melhor mostraremos um exemplo:
SQL> create table x_date_datatypes(id number(2),dt date,tmstp timestamp(4),tmstp_local timestamp(6) with local time zone,tmstp_wtmz timestamp(2) with time zone);
Table created.
Elapsed: 00:00:00.08
SQL> insert into x_date_datatypes
values(1,sysdate,systimestamp,systimestamp,systimestamp) ; 2
1 row created.
Elapsed: 00:00:00.03
SQL> commit;
Commit complete.
Elapsed: 00:00:00.28
SQL>
SQL> alter session set nls_date_format ='dd/mm/rrrr hh24:mi:ss' ;
Session altered.
Elapsed: 00:00:00.03
SQL> select * from x_date_datatypes;
ID DT TMSTP TMSTP_LOCAL TMSTP_WTMZ
--- ------------------- ------------------------------ ------------------------------ ------------------------------------------------------------
1 03/08/2010 00:44:54 03-AUG-10 12.44.54.3052 AM 03-AUG-10 12.44.54.305240 AM 03-AUG-10 12.44.54.31 AM -03:00
Elapsed: 00:00:00.00
SQL>
Como podemos ver ,a segunda coluna é do tipo date e armazena até a precisado do segundo.
Na terceira coluna o tipo é timestamp e podemos ver que está armazenando a precisão em frações de segundos com 4 posições como definido no comando CREATE TABLE.
Vamos falar sobre a quinta coluna primeiro que é do tipo timestamp with time zone.Podemos ver que ela armazena o deslocamento em relação ao UTC,que para São Paulo é -03:00.
Mesmo trocando o fuso horário da sessão/time zone o valor não é alterado,pois o deslocamento é armazenado juntamente com os dados.
Na quarta coluna que é do tipo timestamp with local timezone é armazenado como no tipo timestamp a precisão em frações de segundos.
Podemos notar no default que não aparece o deslocamento em relação ao UTC,mas se fizermos o seguinte:
SQL> alter session set time_zone='+6:00' ;
Session altered.
Elapsed: 00:00:00.00
SQL> select systimestamp from dual ;
SYSTIMESTAMP
---------------------------------------------------------------------------
03-AUG-10 01.15.20.695118 AM -03:00
Elapsed: 00:00:00.00
SQL> select * from x_date_datatypes;
ID DT TMSTP TMSTP_LOCAL TMSTP_WTMZ
--- ------------------- ------------------------------ ------------------------------ ------------------------------------------------------------
1 03/08/2010 00:44:54 03-AUG-10 12.44.54.3052 AM 03-AUG-10 09.44.54.305240 AM
Podemos ver que o valor mostrado na coluna TMSTP_LOCAL está calculado segundo a sessão do usuário descontando mais 3 horas em relação ao UTC,pois no valor armazenado no banco de dados
o UTC era -03:00
Dica :Consulte a V$TIMEZONE_NAMES
Para mais informações sobre estes tipos de data/hora consulte aguide de SQL disponível no tahiti.oracle.com .
Abs,
JC
Thursday, July 22, 2010
ASM without HW RAID
Achei bem interessante este documento.
https://twiki.cern.ch/twiki/bin/viewfile/PSSGroup/Presentations2008?rev=3;filename=UKOUG_2008_CERN_ASM_no_RAID_LC_DW.ppt
https://twiki.cern.ch/twiki/bin/viewfile/PSSGroup/Presentations2008?rev=3;filename=UKOUG_2008_CERN_ASM_no_RAID_LC_DW.ppt
Oracle on Linux - Load average factor e CPU bottlenecks
Como medir o load avarage corretamente ou a melhor forma utilizada.
Nas tradicionais tools do Linux ou Unix temos o bendito do load average que alguns dizem que significam muita coisa e outros dizem que não significa nada.A verdade é : significa muito sim.
O load avg. pode ser interpretado diretamente quando a maquina possui somente uma(1) CPU.Para maquinas com mais de uma(1) CPU a forma correta é usar o load avg. factor .
Usando o ferramenta top podemos verificar e entender o que o sistema nos mostra sobre CPU bottlenecks.
O load avg. mostra a quantidade de processos que fizeram uso de CPU em um ponto no tempo.
O calculo para medir o load. avg. factor é
load.avg / nr.CPU = load.avg.factor
E o entendimento que se pode ter é a respeito de CPU bottleneck:
load avg. factor < 1 = A distribuição de recurso está dentro da capacidade e se necessário o sistema tem condição de suportar mais carga neste recurso.Enfim,o gargalo não está por aqui.
load avg. factor entre 1 e 2 = a distribuição do recurso de CPU está dentro da capacidade.
load avg. factor > 2 = Sim,o gargalo do sistema “pode” estar aqui.É recomendado continuar a investigação usando outras ferramentas vmstat,sar entre outras.Não só neste caso,mas verificar a distribuição de rotinas ,processos que fazem uso do servidor de forma mais adequada e monitorar se houve mudança no comportamento do sistema no horário de “gargalo”.
Vou usar o meu desktop com Ubuntu 10.04 como exemplo :
Como saber quantas CPU’s existem na maquina ?Existem varias formas : /proc/cpuinfo,top,vmstat e etc..
ex.
jccorrea|mydesktop ~
$ cd /proc/
jccorrea|mydesktop /proc
$ ls |grep cpu
cpuinfo
jccorrea|mydesktop /proc
$ cat cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz
stepping : 11
cpu MHz : 1596.000
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
ou o comando top com a opção 1
ex.
jccorrea|mydesktop /proc
$ top
top - 12:22:16 up 5 days, 22:28, 7 users, load average: 0.95, 1.10, 1.10
Tasks: 243 total, 2 running, 241 sleeping, 0 stopped, 0 zombie
Cpu0 : 16.8%us, 3.9%sy, 0.3%ni, 78.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 9.4%us, 2.6%sy, 0.0%ni, 88.1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 11.4%us, 2.5%sy, 0.3%ni, 85.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 5.3%us, 1.2%sy, 0.0%ni, 93.4%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4124916k total, 3352532k used, 772384k free, 156916k buffers
Swap: 9936888k total, 18436k used, 9918452k free, 729968k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
31948 jccorrea 20 0 206m 107m 22m S 18 2.7 297:34.37 plugin-containe
888 root 20 0 316m 203m 92m S 9 5.0 278:51.67 Xorg
Vamos ver o load average agora:
ex.
top - 12:19:02 up 5 days, 22:25, 7 users, load average: 1.23, 1.24, 1.14
Tasks: 243 total, 2 running, 241 sleeping, 0 stopped, 0 zombie
Cpu(s): 8.1%us, 2.0%sy, 0.2%ni, 89.6%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4124916k total, 3344672k used, 780244k free, 157260k buffers
Swap: 9936888k total, 18436k used, 9918452k free, 729888k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
31948 jccorrea 20 0 206m 107m 22m S 19 2.7 296:56.74 plugin-containe
2837 jccorrea 20 0 464m 104m 27m S 7 2.6 3632:16 chrome
888 root 20 0 320m 203m 92m S 3 5.0 278:40.71 Xorg
3132 jccorrea 20 0 118m 53m 25m S 3 1.3 0:39.93 VirtualBox
...
Aqui já temos o número de CPUs que no caso são 4.
Lembrando que o top mostra o load avg: (no momento,5 minutos atras e 15 minutos atrás)
Calculando o load avg.factor usando o snaphot do top :
now - 1.23/4 = 0.3075
5 minutes past = 1.24/4 = 0.31
15 minutes past = 1.14/4 = 0.285
Por aqui está tudo sobre controle .
Vamos ver agora um exemplo com um servidor mais pontente :
[oracle@potente proc]$ top
top - 13:40:11 up 118 days, 8:18, 2 users, load average: 0.35, 0.47, 0.46
Tasks: 376 total, 2 running, 374 sleeping, 0 stopped, 0 zombie
Cpu0 : 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu4 : 1.0%us, 0.0%sy, 0.0%ni, 98.7%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu5 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu6 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu7 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu8 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu9 : 0.7%us, 0.3%sy, 0.0%ni, 99.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu10 : 2.0%us, 0.3%sy, 0.0%ni, 97.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu11 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu12 : 18.3%us, 0.3%sy, 0.0%ni, 81.4%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu13 : 0.3%us, 0.3%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu14 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu15 : 0.0%us, 0.0%sy, 0.0%ni, 99.3%id, 0.3%wa, 0.0%hi, 0.3%si, 0.0%st
Mem: 37037264k total, 36884956k used, 152308k free, 185104k buffers
Swap: 39086136k total, 433948k used, 38652188k free, 33778168k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4771 oracle 16 0 15.6g 2.0g 2.0g R 17.9 5.7 36:48.93 oracle
26119 oracle 15 0 15.6g 3.2g 3.2g S 2.7 9.0 0:20.04 oracle
26095 oracle 15 0 15.6g 3.2g 3.1g S 1.0 8.9 0:19.70 oracle
11298 oracle 15 0 15.6g 89m 87m S 0.3 0.2 1733:08 oracle
27260 oracle 15 0 12976 1328 824 R 0.3 0.0 0:00.05 top
Calculando o load avg.factor usando o snaphot do top :
now - 0.35/16 = 0.02
5 minutes past = 0.47/16 = 0.03
15 minutes past = 1.14/16 = 0.03
Vamos aumentar este load avg. no meu desktop :
$ top
top - 16:00:37 up 6 days, 2:06, 7 users, load average: 10.01, 5.42, 2.83
Tasks: 259 total, 1 running, 258 sleeping, 0 stopped, 0 zombie
Cpu(s): 11.1%us, 2.7%sy, 0.1%ni, 6.0%id, 80.0%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 4124916k total, 4012600k used, 112316k free, 5040k buffers
Swap: 9936888k total, 806524k used, 9130364k free, 154860k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
31948 jccorrea 20 0 206m 27m 7556 S 12 0.7 339:09.89 plugin-containe
5359 jccorrea 20 0 1024m 111m 10m S 11 2.8 0:05.61 java
888 root 20 0 349m 167m 100m S 9 4.2 292:35.67 Xorg
2837 jccorrea 20 0 464m 56m 11m S 8 1.4 3650:16 chrome
5182 jccorrea 20 0 1080m 240m 11m S 7 6.0 0:21.98 java
5261 jccorrea 20 0 1050m 149m 11m S 3 3.7 0:12.24 java
1314 jccorrea 9 -11 158m 11m 9996 S 2 0.3 107:28.12 pulseaudio
Calculando o load avg.factor :
now - 10.01/4 = 2.50
5 minutes past = 5.42/4 = 1.35
15 minutes past = 2.83/4 = 0.71
Como podemos ver neste instante em que fiz um uso maior de aplicativos no meu desktop o recurso de CPU foi maiormente utilizado tanto que no ponto “now” em que foi tirado o snapshot o servidor estava com o consumo de CPU utilizado acima da capacidade.
Nos servidores de banco de dados funciona da mesma forma.Quando monitorado e você verificar auto consumo de CPU fora do normal sempre procure saber o motivo para nunca ser pego “desprovido “de informação .Usando as próprias ferramentas nativas do Linux e Oracle você poderá identificar o processo “causador” do auto consumo.O problema não é o auto consumo em si,mas quando isso acontece outra aplicação/recurso pode ficar sem a devida prioridade e sem o devido recurso de CPU necessário para o seu funcionamento chegando em casos extremos de parar ou deixar de responder as solicitações por falta de recurso.Já vi casos em que não era possível mesmo se logar via ssh no servidor e a unica solução ser ir fisicamente no servidor e fazer o reboot ou na maioria dos casos ele mesmo se encarregava de faze-lô!.
Distribua melhor os recursos no ser servidor e seja feliz !
Espero que este post contribua em algum ponto no seu aprendizado.
Abs,
JC
Subscribe to:
Comments (Atom)

