Você está na página 1de 11

10 razes para a verso 10 !

Filed under Uncategorized by Marcos Caurim on 25-04-2011

Segue abaixo dez bons motivos para se orientarem mais sobre o DB2 z/OS verso 10. 1 At 20 % de reduo em CPU para as transaes batch e online 2 Dez vezes mais usurios evitando problemas de memria 3 Mais concorrncia para uso do catalog, utilitrios e SQL 4 Mais alteraes online para DDLs e utilitrios 5 Improved security with more granularity 6 Uso de dados temporais e versionamento 7 Melhorias de portabilidade de SQL 8 Melhorias de uso e performance para pureXML 9 Novas features inclundo Acesso Hash, colunas adicioanais para ndices nicos e pular migrao da V8 para V10 * 10 Melhorias de produtividade para DBAs , Systems , analistas e programadores * Muito interessante este ponto do skip migration , Alguns clientes americanos foram para a V10 direto sem problemas, porm temos alguns fatos a considerar : Indo para V9 possvel usar algo desta verso com mais calma e depois ir para a v10. No caso de iniciar o processo de V8 para V9 e volar para a V8 , no possvel mudar o plano de ir para a V10 novamente Abcs
No Comments Read More

Centenrio !
Filed under Uncategorized by Marcos Caurim on 18-02-2011

Comemorando os 100 anos da IBM , muito vdeos esto sendo lanados no youtube , o legal que voc pode ver como est empresa ajudou o mundo a crescer e se desenvolver com diversas idias , no baseado em petrleo e explorao apenas na frase THINK !! Segue o mais interessante lgico voltado ao nosso system 360 como nosso mainframe o System z era chamado em 1960 !! Vale a pena ver como ele mudou o jeito das empresas crescerem e continuar mudando Abcs
No Comments

http://www.ibm.com/ibm100/us/en/icons/system360/
Read More

Perigos dos predicados


Filed under Uncategorized by Marcos Caurim on 07-12-2010

Muito se pergunta sobre ajuste de SQL , muitos dizem criar ndices , mas vocs sabiam que muitos ndices j usados poderiam ajudar , porm com predicados mal escritos na clusula WHERE , mesmo com o ndice exisente na coluna , o optmizer vai preferir ler toda a tabela ou at mesmo varrer todo ndice (chamado de index screening0 ou match cols = 0 no explain ) ao invs de ir direto no dado do ndice , conhecido como matching predicates. O captulo 27 do Admin guide traz todo este assunto em detalhes e vital para qualquer pessoa que vai desenvolver cdigo SQL. O Db2 trata os predicados como indexados , stage1 e stage 2 , sendo esta ordem os melhore e os piores de serem executados. Basicamente temos que focar em usar operandos de = , evitar ranges como <= ou >= para evitar isto podes se usar o between em colunas como ndice para serem predicados indexveis. ex: COL1 = ? Operandos , funes eliminam qualquer chance de usar o ndice , mesmo que o mesmo exista para a coluna. ex : CAST (COL1) = ? Operandos booleanos : Quanto mais usar predicado booleano aquele que elimina a linha toda quando for falso melhor : Ex COL1 = ? AND COL2 =? Evite usar OR , como COL1 = ? or COL 2 = ? . neste caso pense at no UNION ALL.(lembre que UNION apenas causa SORT) So dicas bsicas que ja ajudam muito neste mundo muito vasto de SQL tuning , em breve teremos mais. Abcs , COL1 + 3 = ?

No Comments

Read More

Aplicao ruim !! Problema no DB2 ?


Filed under 1 by Marcos Caurim on 06-09-2010

H um bom tempo o pessoal me pede dicas de performance e as melhores prticas de desenvolvimento de aplicaes para o DB2 , depois de ficar alocado em vrios projetos deste tipo aonde todos dizem o DB2 est lento , o gargalo o banco de dados e outras coisas , posso afirmar que 98,75% dos problemas esto no desenvovimento de programas e a falta de conhecimento do uso de ndices , estrutura de tabelas e at mesmo noo de lgica , segue abaixo vrias dicas que podem ajudar e muito no dia-dia. Espero que seja til para vocs. Para o nicio de qualque trabalho de anlise de performance a utilizao de uma tima ferramenta de monitorao recomendada, temos a melhor conhecida como OMEGAMON da IBM que existe para z/OS , DB2 , CICS , IMS e outras . Muitos clientes j tem OMEGAMON instalado mas usam muito pouco seu potencial , tanto em relatrios batchs quanto em monitorao real-time , em breve passarei dicas para usar o OMEGAMON. Abcs -Estrututa de design DB2

Criar tablespace com opo MEMBER CLUSTER e TRACKMOD NO em ambiente DATASHARING para melhor inseres . Particionar tabelas com mais de 80 milhes de linhas para melhorar inseres e execues de utilitrios Segmentar os tablespaces simples para melhorar inseres e execues de utilitrios Garantir Reorganizao e RUNSTATs constantes das tabelas Uso de PCTFREE e FREEPAGE para inseres e atualizaes Uso de ndices em chaves estrangeiras (Fks) Avaliar necessidade de grande nmero de tabelas Pais e Filhos antes de implementar Integridade Referencial -Escrita de SQL

Locks e concorrncia : -Uso de SELECT com clusula WITH UR para forar leitura suja (Caso queira fazer leitura para atualizao usar SELECT FOR UPDATE ),principalmente quando um programa contm

alguma INSERT/DELETE/UPDATE , pois caso no exista a clusula UR o DB2 ir elevar o isolation para CS.

Caso tenha que usar SELECT com isolation CS , fazer o BIND do package con CURRENTDATA(NO) para evitar locks. Usar SELECT FOR UPDATE se realmente atualizar o dado depois no mesmo programa. Usar SELECT WITH HOLD , se realmente desejar segura o ponteiro no result set aps a operao de COMMIT. Tanto em processamento BATCHs como principalmente no Online realizar o COMMIT o mais breve possvel, no CICS execute o comando SYNCPOINT COMMIT. Use a mesma maneira de acesso a tabela para todos os programas para melhorar concorrncia. Performance :

Evitar uso de muitas tabelas em um comando JOIN , pode ser usado SUB QUERIES Avaliar uso dos ndices durante um JOIN usando SQL EXPLAIN Quebrar os joins em uma query e testar o resultado de cada SELECT COUNT(*) , o menor nmero de linhas com o melhor filtro ser o melhor acesso. Quanto melhor garantir a unicidade do dado a ser lido seria melhor , garantido acesso via chaves primrias. Garantir o RUNSTATs para melhor acesso dos ndices Evitar uso de clusula DISTINCT para retirar registros duplicados , a garantia de unicidade do valor pode ser feita atravs da Evitar uso de ORDER BY ,caso necessrio usar o comando em coluna com ndice Evitar uso de SELECT MAX , caso necessrio usar o comando em coluna com ndice ndice ideal :

Criar ndices com colunas que garantam um melhor acesso , quanto maior a cardinalide da coluna melhor. Colocar todas as colunas da clusula WHERE no ndice, quanto mais os predicados filtrarem o result set melhor , de preferncia no topo do ndice. Coloque aas colunas no ndice na sequncia do ORDER BY para evitar SORTs Forar uso de INDEXONLY , acessando apenas as colunas do ndice no SELECT Cuidado com alto nmero de ndices em tabelas com grande quantidade de INSERTs , DELETES e UPDATES Lgica de programao :

Evitar uso de COOLGEN para gerao de cdigos indesejados como DISTINCT , FOR UPDATE , ORDER BY , SELECT MAX , CURSOR WITH HOLD , Usar campo SQLCA para tratar erro do DB2 e gerar mensagem com programas , SQL statement , reason code , Sqlcode , etc

No fazer DISPLAYS em programas CICS. Se possvel entre com os dados ordenados para evitar fazer o SORT no DB2. Em loops guardar o dado anterior para no acessar o DB2 para buscar uma informao que j foi lida.
(3) Comments Read More

Leitura suja ??
Filed under 1 by Marcos Caurim on 24-08-2010

Um dos grandes assuntos no DB2 o processo de locks , como um grade banco de dados o DB2 usa muito bem os locks para manter a integridade dos dados , o que uma premissa bsica de um SGBD. Por outro lado locks usam espao cerca de 500 bytes por lock e tambm se mal configurados podem causam problemas de perforamance devido ao grande nmero de aplicaes tentando acessar a mesma informao. Para evitar locks ou tentar minimiza-los o existem os isolation levels bastante conhecidos pelos programadores DB2 , como o CS , RR , RS e o ltimo chamado de UR (Uncomitted Read) ou leitura suja. Sempre foi falado que leitura suja no faz locks na tabela e com isso voc pode ler dados que no foram comitados ainda , gerando dados no corretos caso este dados por algum motivo no sofrerem commits. A maioiria que exeuta este tipo de SELECT ou no parametro do BIND chamado ISOLATION , j est ciente desta situao e sabe que no se importa em trazer este tipo de dados. preciso estar atento h alguns fatos importante antes de usar o UR em ambiente de produo e em sistemas mais crticos , o grande uso do UR pra Queries rpidas principalmente em Teste ou mesmo nas tabelas do catlogo DB2. Para uso em produo temos que saber que a histria de no fazer locks realmente no verdade , quando feito um select deste tipo executado o lock MDEL ou mass delete , o mesmo no conhecido , ele serve para evitar as delees em massa enquanto voc est lendo os dados , loco quando sua query com UR estiver rodando , um DELETE ALL ter que esperar seu processo finalizar. Agora caso voc realmente queria evitar locks , saiba que caso exista um INSERT , UPDATE ou DELETE em seu programa e seu pacote foi feito o BIND com ISOLATION UR , preciso forar a clusula UR no SELECT , pois sem ela DB2 elevara o isolation de todo pacote para CS , fazendo com que suas clusulas SELECTs sem usar WITH UR comecem a fazem lock de linha , tabela ou tablespace de acordo com a configurao. Com isto seu programa que voc jura que no faz locks , est segurando recursos e podendo causar timeouts e deadlocks com outros programas tentam acessar a mesma tabela. Abcs
No Comments

Read More

Pessoal do lab est de volta


Filed under 1 by Marcos Caurim on 23-07-2010

Agora em agosto teremos a volta do pessoal do lab de DB2 z/OS com novas palestras foco o DB2 z/OS verso 10 que ser lanado oficialmente este ano ,sem contar novas instrues sobre o DB2 V9 e como um todo , sem contar sesses de paralela para nosso irmo IMS. No percam esta chance ! Segue abaixo a folder do envento. Dessa vez teremos sesses em SP e Braslia . Alm de Buenos Aires para nosso hermanos. Abcs

No Comments

Read More

IBM lana Zentrerprise o novo conceito de mainframe


Filed under 1 by Marcos Caurim on 23-07-2010

fato que cada vez mais as empresas buscam por economizar o dinheiro gasto em TI , com isto atravs dos focos do Smart planet a IBM lanou uma nova mquina que capaz de ser 10 vezes mais potente com a Z10 e ao mesmo tempo economizar energia , espao e processamento , sem contar q grande capacidade de integrao com outros sistemas distribuidos aonde voc realmente pode executar todo seu workload em uma mquina incluindo os processamentos carssimos de BI , SOA , BAO , etc Segue o link em portugus com mais informaes E para aqueles que pensam que os investimentos em mainframe acabaram , neste projeto foram involvidas 5 mil pessoas a um custo de 1.5 bilhes de dlares. http://w3.ibm.com/news/w3news/top_stories/2010/07/br_stg_zenterprise_lancamento.html Abcs
No Comments

Read More

Novos rumos
Filed under 1 by Marcos Caurim on 16-04-2010

Oi Pessoal , depois de dois meses de desaparecimento do blogueiro estou de volta. Primeiro devido a minha pequenssima frias e depois pela mudana de rea com o DB2. No atuo mais como DB2 suporte para clientes internacionais focando em suporte 24 x7 , agora estou de volta aos clientes brasilerios auxiliando em todo tipo de projeto relacionado ao nosso DB2 z/OS como Performance , migrao , instalao , integrao de dados , consultoria e outra inmeras atividades extremamente desafiadoras que sempre busquei , com isto a atualizao de atuais e novos conceitos se tornam muito mais mandatrias , espero cada vez mais contribuir com vocs. Falando de PERFORMANCE , parece chato mas existem inmeros processos que no focam em coisas como um processo criado de reorganizao de tabelas , retirada de estatsticas usando Real time statistics e funes interessantes como COLGROUP e FREQVAL para melhor anlise das colunas , sem contar com um prximo contato com o time de desenvolvimento das aplicaes , hoje em dia comum usarmos fabricas de softwares para o desenvolvimento e manuteno dos programas , com isto temos de estar sempre atentos a qualidade desses programas se lembrando de coisas bsicas como : - Evitar SORTs atravs de clusulas como DISTINCT , ORDER BY e GROUP BY sem necessidade (ndices podem ajudar). - Sempre tentar qualificar o result set com um timo conjunto de predicados e ndices bem feitos (uso do EXPLAIN no di !! )

- Evitar INSERT em UPDATES em ndices devido a relocao e I/Os. - Uso constante de monitores como OMEGAMON e DB2PM para avaliar e medir as aplicaes. muito legal o quanto voc aprende utilizando REPORTs como de ACCOUNTING (focado em tempo de planos e packages ) , LOCKS , STATISTICS(uma viso do DB2 em Geral ) , BUFFER POOL , etc Lgico que no podemos esquecer de checar se os traces esto ativos e logicamente checar o overhead que eles podem causar . isso a no tenham medo de mudar o que est rodando , possvel deixar melhor , muito melhor !! Abcs
(1) Comment

Read More

10 !! Ele vem ai DB2 10 para Mainframes


Filed under 1 by Marcos Caurim on 12-02-2010

A IBM anunciou est semana o lanamento da verso beta do DB2 10 para z/OS , logo esperamos que at o fim do ano ela deve ser lanada oficialmente. Podem esperar muitas novidades na parte de XML , Aplicaes Web , corte de custos com CPU e Storage , utilizao de memria , etc Acessem este site e vejam tudo que existe at o momento , juntamente com depoimentos de experts da rea. http://www-01.ibm.com/software/data/db2/zos/db2-10/ Para aqueles que pensam que s chegara no Brasil muito tarde , se voc est rodando verso 8 que foi a migrao mais trabalhosa , migrar para 9 e 10 no ser to difcil e demorado assim. Aguardemos Abcs

Você também pode gostar