SlideShare uma empresa Scribd logo
10 razões para a versão 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 versão 10.
1 Até 20 % de redução em CPU para as transações batch e online
2 Dez vezes mais usuários evitando problemas de memória
3 Mais concorrência para uso do catalog, utilitários e SQL
4 Mais alterações online para DDLs e utilitários
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 incluíndo Acesso Hash, colunas adicioanais para índices únicos e pular migração
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,
porém temos alguns fatos a considerar :
Indo para V9 é possível usar algo desta versão com mais calma e depois ir para a v10.
No caso de iniciar o processo de V8 para V9 e volar para a V8 , não é possível mudar o plano de ir
para a V10 novamente
Abcs
No Comments
Read More
Centenário !
Filed under Uncategorized by Marcos Caurim on 18-02-2011
Comemorando os 100 anos da IBM , muito vídeos estão sendo lançados no youtube , o legal é que
você pode ver como está empresa ajudou
o mundo a crescer e se desenvolver com diversas idéias , não baseado em petróleo e exploração
apenas na frase THINK !!
Segue o mais interessante lógico 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
http://www.ibm.com/ibm100/us/en/icons/system360/
No Comments
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 vocês sabiam que
muitos índices já usados poderiam ajudar , porém com predicados mal escritos na cláusula
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 invés
de ir direto no dado do índice , conhecido como matching predicates.
O capítulo 27 do Admin guide traz todo este assunto em detalhes e é vital para qualquer pessoa
que vai desenvolver código 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 indexáveis.
ex: COL1 = ?
Operandos , funções eliminam qualquer chance de usar o índice , mesmo que o mesmo exista
para a coluna.
ex : CAST (COL1) = ? , COL1 + 3 = ?
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)
São dicas básicas que ja ajudam muito neste mundo muito vasto de SQL tuning , em breve
teremos mais.
Abcs
No Comments
Read More
Aplicação 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 práticas de
desenvolvimento de aplicações para o DB2 , depois de ficar alocado em vários 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 estão no desenvovimento de programas e a falta de
conhecimento do uso de índices , estrutura de tabelas e até mesmo noção de lógica , segue abaixo
várias dicas que podem ajudar e muito no dia-dia. Espero que seja útil para vocês. Para o ínicio de
qualque trabalho de análise de performance a utilização de uma ótima ferramenta de monitoração
é 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 relatórios batchs quanto em monitoraçào real-time , em breve passarei dicas
para usar o OMEGAMON.
Abcs
-Estrututa de design DB2
 Criar tablespace com opção MEMBER CLUSTER e TRACKMOD NO em ambiente
DATASHARING para melhor inserções .
 Particionar tabelas com mais de 80 milhões de linhas para melhorar inserções e
execuções de utilitários
 Segmentar os tablespaces simples para melhorar inserções e execuções de utilitários
 Garantir Reorganização e RUNSTATs constantes das tabelas
 Uso de PCTFREE e FREEPAGE para inserções e atualizações
 Uso de índices em chaves estrangeiras (Fks)
 Avaliar necessidade de grande número de tabelas Pais e Filhos antes de implementar
Integridade Referencial
-Escrita de SQL
 Locks e concorrência :
 -Uso de SELECT com cláusula WITH UR para forçar leitura suja (Caso queira fazer leitura
para atualização usar SELECT FOR UPDATE ),principalmente quando um programa contém
alguma INSERT/DELETE/UPDATE , pois caso não exista a cláusula 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 após a
operação de COMMIT.
 Tanto em processamento BATCHs como principalmente no Online realizar o COMMIT o
mais breve possível, no CICS execute o comando SYNCPOINT COMMIT.
 Use a mesma maneira de acesso a tabela para todos os programas para melhorar
concorrência.
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
número 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 primárias.
 Garantir o RUNSTATs para melhor acesso dos índices
 Evitar uso de cláusula DISTINCT para retirar registros duplicados , a garantia de
unicidade do valor pode ser feita através da
 Evitar uso de ORDER BY ,caso necessário usar o comando em coluna com índice
 Evitar uso de SELECT MAX , caso necessário 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 cláusula WHERE no índice, quanto mais os predicados
filtrarem o result set é melhor , de preferência no topo do índice.
 Coloque aas colunas no índice na sequência do ORDER BY para evitar SORTs
 Forçar uso de INDEXONLY , acessando apenas as colunas do índice no SELECT
 Cuidado com alto número de índices em tabelas com grande quantidade de INSERTs ,
DELETES e UPDATES
Lógica de programação :
 Evitar uso de COOLGEN para geração de códigos 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
 Não fazer DISPLAYS em programas CICS.
 Se possível entre com os dados ordenados para evitar fazer o SORT no DB2.
 Em loops guardar o dado anterior para não acessar o DB2 para buscar uma informação
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 básica de
um SGBD. Por outro lado locks usam espaço cerca de 500 bytes por lock e também se mal
configurados podem causam problemas de perforamance devido ao grande número de aplicações
tentando acessar a mesma informação. 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 não faz
locks na tabela e com isso você pode ler dados que não foram comitados ainda , gerando dados
não corretos caso este dados por algum motivo não sofrerem commits. A maioiria que exeuta este
tipo de SELECT ou no parametro do BIND chamado ISOLATION , já está ciente desta situação e
sabe que não se importa em trazer este tipo de dados.
É preciso estar atento há alguns fatos importante antes de usar o UR em ambiente de produção e
em sistemas mais críticos , o grande uso do UR é pra Queries rápidas principalmente em Teste ou
mesmo nas tabelas do catálogo DB2. Para uso em produção temos que saber que a história de
não fazer locks realmente não é verdade , quando é feito um select deste tipo é executado o lock
MDEL ou mass delete , o mesmo não é conhecido , ele serve para evitar as deleções 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 forçar a
cláusula UR no SELECT , pois sem ela DB2 elevara o isolation de todo pacote para CS , fazendo
com que suas cláusulas SELECTs sem usar WITH UR comecem a fazem lock de linha , tabela ou
tablespace de acordo com a configuração.
Com isto seu programa que você jura que não 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 versão 10 que será lançado oficialmente este ano ,sem contar novas instruções sobre o DB2
V9 e como um todo , sem contar sessões de paralela para nosso irmão IMS.
Não percam esta chance !
Segue abaixo a folder do envento. Dessa vez teremos sessões em SP e Brasília . Além de Buenos
Aires para nosso hermanos.
Abcs
Db2
No Comments
Read More
IBM lança 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
através dos focos do Smart planet a IBM lançou uma nova máquina que é capaz de ser 10 vezes
mais potente com a Z10 e ao mesmo tempo economizar energia , espaço e processamento , sem
contar q grande capacidade de integração com outros sistemas distribuidos aonde você realmente
pode executar todo seu workload em uma máquina incluindo os processamentos caríssimos de BI
, SOA , BAO , etc Segue o link em português com mais informações …
E para aqueles que pensam que os investimentos em mainframe acabaram , neste projeto foram
involvidas 5 mil pessoas a um custo de 1.5 bilhões de dólares.
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 pequeníssima férias e depois pela
mudança de área com o DB2. Não 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 , migração , instalação , integração de dados , consultoria
e outra inúmeras atividades extremamente desafiadoras que sempre busquei , com isto a
atualização de atuais e novos conceitos se tornam muito mais mandatórias , espero cada vez mais
contribuir com vocês.
Falando de PERFORMANCE , parece chato mas existem inúmeros processos
que não focam em coisas como um processo criado de reorganização de tabelas
, retirada de estatísticas usando Real time statistics e funções interessantes
como COLGROUP e FREQVAL para melhor análise das colunas , sem contar
com um próximo contato com o time de desenvolvimento das aplicações ,
hoje em dia é comum usarmos fabricas de softwares para o desenvolvimento
e manutenção dos programas , com isto temos de estar sempre atentos
a qualidade desses programas se lembrando de coisas básicas como :
- Evitar SORTs através de cláusulas como DISTINC T , 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 não dói !! )
- Evitar INSERT em UPDATES em índices devido a relocação e I/Os.
- Uso constante de monitores como OMEGAMON e DB2PM para avaliar e medir
as aplicações. É muito legal o quanto você aprende utilizando REPORTs como
de ACCOUNTING (focado em tempo de planos e packages ) , LOCKS ,
STATISTICS(uma visão do DB2 em Geral ) , BUFFER POOL , etc
Lógico que não podemos esquecer de checar se os traces estão ativos e logicamente checar o
overhead que eles podem causar .
É isso aí não tenham medo de mudar o que está rodando , é possível 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 lançamento da versão beta do DB2 10 para z/OS , logo esperamos
que até o fim do ano ela deve ser lançada oficialmente. Podem esperar muitas novidades na parte
de XML , Aplicações Web , corte de custos com CPU e Storage , utilização de memória , 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 versão 8
que foi a migração mais trabalhosa , migrar para 9 e 10 não será tão difícil e demorado assim.
Aguardemos …
Abcs

Mais conteúdo relacionado

PDF
ESSBASE Series - Excel Add-in Essbase
DOCX
ODI Series - Importar Arquivos Texto para Tabelas
PDF
ODI Series - Exportar Tabelas para Arquivo Texto
DOCX
ODI SERIES - Como mapear novos campos em modelos e interfaces
PDF
ODI Tutorial - Modelo de Dados
DOCX
Odi tutorial configuração repositórios mestre e trabalho
PDF
ODI SERIES - Melhores Práticas
PDF
ODI Tutorial - Desenvolvendo Procedures
ESSBASE Series - Excel Add-in Essbase
ODI Series - Importar Arquivos Texto para Tabelas
ODI Series - Exportar Tabelas para Arquivo Texto
ODI SERIES - Como mapear novos campos em modelos e interfaces
ODI Tutorial - Modelo de Dados
Odi tutorial configuração repositórios mestre e trabalho
ODI SERIES - Melhores Práticas
ODI Tutorial - Desenvolvendo Procedures

Mais procurados (10)

PDF
Essbase Series - Backup
PDF
PDF
Apostila Curso Php My Sql(Portugues)
PDF
Prova Correios Atend. comercial - CESPE
PPT
Curso Adabas
PDF
Interfaces windows em c sharp
PDF
913 office exxcel_avançado
PPTX
Os melhores recursos novos do Oracle Database 12c para desenvolvedores e DBAs...
PDF
DMQ Talks Prof Felipe Rafael Ribeiro Melo
Essbase Series - Backup
Apostila Curso Php My Sql(Portugues)
Prova Correios Atend. comercial - CESPE
Curso Adabas
Interfaces windows em c sharp
913 office exxcel_avançado
Os melhores recursos novos do Oracle Database 12c para desenvolvedores e DBAs...
DMQ Talks Prof Felipe Rafael Ribeiro Melo
Anúncio

Destaque (6)

PPTX
MongoDB: Prós, Contras e Showcases.
PPTX
PDF
DB2 9.7 Overview
PPT
Db2
PDF
MariaDB Vorstellung
MongoDB: Prós, Contras e Showcases.
DB2 9.7 Overview
Db2
MariaDB Vorstellung
Anúncio

Semelhante a Db2 (20)

ODP
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGI
PDF
Dojo banco de dados
ODP
Fazendo Um Elefante Passar Debaixo da Porta - FISL
PPTX
Introdução ao BD Postgre
PDF
ORACLE ADVANCED SECURITY
PPTX
Novidades do Sql Server 2016
PDF
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
PDF
Apostila oracle
ODP
Fazendo uma manada de elefantes passar por baixo da porta
PPT
Joomla Day Brasil 2010: Customizações para grandes portais
PPT
TechEd_OFC302
PDF
Expremendo performance do sql server
PDF
24H PASS PT-BR 10 Dicas para escrever códigos t-sql melhores
PDF
Minicurso PostgreSQl
PDF
37 consultando tabelas_com_sql_no_sql_server
PDF
37 consultando tabelas_com_sql_no_sql_server
PPTX
Principais processos de criação de um Banco de Dados e comuns erros de aplica...
PDF
PPT
Oracle Exadata - Consolidação & Migração
PDF
Arquitetura e sgbd de um banco de dados
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGI
Dojo banco de dados
Fazendo Um Elefante Passar Debaixo da Porta - FISL
Introdução ao BD Postgre
ORACLE ADVANCED SECURITY
Novidades do Sql Server 2016
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
Apostila oracle
Fazendo uma manada de elefantes passar por baixo da porta
Joomla Day Brasil 2010: Customizações para grandes portais
TechEd_OFC302
Expremendo performance do sql server
24H PASS PT-BR 10 Dicas para escrever códigos t-sql melhores
Minicurso PostgreSQl
37 consultando tabelas_com_sql_no_sql_server
37 consultando tabelas_com_sql_no_sql_server
Principais processos de criação de um Banco de Dados e comuns erros de aplica...
Oracle Exadata - Consolidação & Migração
Arquitetura e sgbd de um banco de dados

Db2

  • 1. 10 razões para a versão 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 versão 10. 1 Até 20 % de redução em CPU para as transações batch e online 2 Dez vezes mais usuários evitando problemas de memória 3 Mais concorrência para uso do catalog, utilitários e SQL 4 Mais alterações online para DDLs e utilitários 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 incluíndo Acesso Hash, colunas adicioanais para índices únicos e pular migração 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, porém temos alguns fatos a considerar : Indo para V9 é possível usar algo desta versão com mais calma e depois ir para a v10. No caso de iniciar o processo de V8 para V9 e volar para a V8 , não é possível mudar o plano de ir para a V10 novamente Abcs No Comments Read More Centenário ! Filed under Uncategorized by Marcos Caurim on 18-02-2011
  • 2. Comemorando os 100 anos da IBM , muito vídeos estão sendo lançados no youtube , o legal é que você pode ver como está empresa ajudou o mundo a crescer e se desenvolver com diversas idéias , não baseado em petróleo e exploração apenas na frase THINK !! Segue o mais interessante lógico 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 http://www.ibm.com/ibm100/us/en/icons/system360/ No Comments Read More Perigos dos predicados Filed under Uncategorized by Marcos Caurim on 07-12-2010
  • 3. Muito se pergunta sobre ajuste de SQL , muitos dizem criar índices , mas vocês sabiam que muitos índices já usados poderiam ajudar , porém com predicados mal escritos na cláusula 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 invés de ir direto no dado do índice , conhecido como matching predicates. O capítulo 27 do Admin guide traz todo este assunto em detalhes e é vital para qualquer pessoa que vai desenvolver código 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 indexáveis. ex: COL1 = ? Operandos , funções eliminam qualquer chance de usar o índice , mesmo que o mesmo exista para a coluna. ex : CAST (COL1) = ? , COL1 + 3 = ? 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) São dicas básicas que ja ajudam muito neste mundo muito vasto de SQL tuning , em breve teremos mais. Abcs
  • 4. No Comments Read More Aplicação 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 práticas de desenvolvimento de aplicações para o DB2 , depois de ficar alocado em vários 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 estão no desenvovimento de programas e a falta de conhecimento do uso de índices , estrutura de tabelas e até mesmo noção de lógica , segue abaixo várias dicas que podem ajudar e muito no dia-dia. Espero que seja útil para vocês. Para o ínicio de qualque trabalho de análise de performance a utilização de uma ótima ferramenta de monitoração é 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 relatórios batchs quanto em monitoraçào real-time , em breve passarei dicas para usar o OMEGAMON. Abcs -Estrututa de design DB2  Criar tablespace com opção MEMBER CLUSTER e TRACKMOD NO em ambiente DATASHARING para melhor inserções .  Particionar tabelas com mais de 80 milhões de linhas para melhorar inserções e execuções de utilitários  Segmentar os tablespaces simples para melhorar inserções e execuções de utilitários  Garantir Reorganização e RUNSTATs constantes das tabelas  Uso de PCTFREE e FREEPAGE para inserções e atualizações  Uso de índices em chaves estrangeiras (Fks)  Avaliar necessidade de grande número de tabelas Pais e Filhos antes de implementar Integridade Referencial -Escrita de SQL  Locks e concorrência :  -Uso de SELECT com cláusula WITH UR para forçar leitura suja (Caso queira fazer leitura para atualização usar SELECT FOR UPDATE ),principalmente quando um programa contém
  • 5. alguma INSERT/DELETE/UPDATE , pois caso não exista a cláusula 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 após a operação de COMMIT.  Tanto em processamento BATCHs como principalmente no Online realizar o COMMIT o mais breve possível, no CICS execute o comando SYNCPOINT COMMIT.  Use a mesma maneira de acesso a tabela para todos os programas para melhorar concorrência. 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 número 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 primárias.  Garantir o RUNSTATs para melhor acesso dos índices  Evitar uso de cláusula DISTINCT para retirar registros duplicados , a garantia de unicidade do valor pode ser feita através da  Evitar uso de ORDER BY ,caso necessário usar o comando em coluna com índice  Evitar uso de SELECT MAX , caso necessário 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 cláusula WHERE no índice, quanto mais os predicados filtrarem o result set é melhor , de preferência no topo do índice.  Coloque aas colunas no índice na sequência do ORDER BY para evitar SORTs  Forçar uso de INDEXONLY , acessando apenas as colunas do índice no SELECT  Cuidado com alto número de índices em tabelas com grande quantidade de INSERTs , DELETES e UPDATES Lógica de programação :  Evitar uso de COOLGEN para geração de códigos 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
  • 6.  Não fazer DISPLAYS em programas CICS.  Se possível entre com os dados ordenados para evitar fazer o SORT no DB2.  Em loops guardar o dado anterior para não acessar o DB2 para buscar uma informação 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 básica de um SGBD. Por outro lado locks usam espaço cerca de 500 bytes por lock e também se mal configurados podem causam problemas de perforamance devido ao grande número de aplicações tentando acessar a mesma informação. 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 não faz locks na tabela e com isso você pode ler dados que não foram comitados ainda , gerando dados não corretos caso este dados por algum motivo não sofrerem commits. A maioiria que exeuta este tipo de SELECT ou no parametro do BIND chamado ISOLATION , já está ciente desta situação e sabe que não se importa em trazer este tipo de dados. É preciso estar atento há alguns fatos importante antes de usar o UR em ambiente de produção e em sistemas mais críticos , o grande uso do UR é pra Queries rápidas principalmente em Teste ou mesmo nas tabelas do catálogo DB2. Para uso em produção temos que saber que a história de não fazer locks realmente não é verdade , quando é feito um select deste tipo é executado o lock MDEL ou mass delete , o mesmo não é conhecido , ele serve para evitar as deleções 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 forçar a cláusula UR no SELECT , pois sem ela DB2 elevara o isolation de todo pacote para CS , fazendo com que suas cláusulas SELECTs sem usar WITH UR comecem a fazem lock de linha , tabela ou tablespace de acordo com a configuração. Com isto seu programa que você jura que não faz locks , está segurando recursos e podendo causar timeouts e deadlocks com outros programas tentam acessar a mesma tabela. Abcs No Comments
  • 7. 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 versão 10 que será lançado oficialmente este ano ,sem contar novas instruções sobre o DB2 V9 e como um todo , sem contar sessões de paralela para nosso irmão IMS. Não percam esta chance ! Segue abaixo a folder do envento. Dessa vez teremos sessões em SP e Brasília . Além de Buenos Aires para nosso hermanos. Abcs
  • 9. No Comments Read More IBM lança 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 através dos focos do Smart planet a IBM lançou uma nova máquina que é capaz de ser 10 vezes mais potente com a Z10 e ao mesmo tempo economizar energia , espaço e processamento , sem contar q grande capacidade de integração com outros sistemas distribuidos aonde você realmente pode executar todo seu workload em uma máquina incluindo os processamentos caríssimos de BI , SOA , BAO , etc Segue o link em português com mais informações … E para aqueles que pensam que os investimentos em mainframe acabaram , neste projeto foram involvidas 5 mil pessoas a um custo de 1.5 bilhões de dólares. 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
  • 10. Oi Pessoal , depois de dois meses de desaparecimento do blogueiro estou de volta. Primeiro devido a minha pequeníssima férias e depois pela mudança de área com o DB2. Não 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 , migração , instalação , integração de dados , consultoria e outra inúmeras atividades extremamente desafiadoras que sempre busquei , com isto a atualização de atuais e novos conceitos se tornam muito mais mandatórias , espero cada vez mais contribuir com vocês. Falando de PERFORMANCE , parece chato mas existem inúmeros processos que não focam em coisas como um processo criado de reorganização de tabelas , retirada de estatísticas usando Real time statistics e funções interessantes como COLGROUP e FREQVAL para melhor análise das colunas , sem contar com um próximo contato com o time de desenvolvimento das aplicações , hoje em dia é comum usarmos fabricas de softwares para o desenvolvimento e manutenção dos programas , com isto temos de estar sempre atentos a qualidade desses programas se lembrando de coisas básicas como : - Evitar SORTs através de cláusulas como DISTINC T , 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 não dói !! )
  • 11. - Evitar INSERT em UPDATES em índices devido a relocação e I/Os. - Uso constante de monitores como OMEGAMON e DB2PM para avaliar e medir as aplicações. É muito legal o quanto você aprende utilizando REPORTs como de ACCOUNTING (focado em tempo de planos e packages ) , LOCKS , STATISTICS(uma visão do DB2 em Geral ) , BUFFER POOL , etc Lógico que não podemos esquecer de checar se os traces estão ativos e logicamente checar o overhead que eles podem causar . É isso aí não tenham medo de mudar o que está rodando , é possível 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 lançamento da versão beta do DB2 10 para z/OS , logo esperamos que até o fim do ano ela deve ser lançada oficialmente. Podem esperar muitas novidades na parte de XML , Aplicações Web , corte de custos com CPU e Storage , utilização de memória , 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 versão 8 que foi a migração mais trabalhosa , migrar para 9 e 10 não será tão difícil e demorado assim. Aguardemos … Abcs