terça-feira, 21 de dezembro de 2010

Qual versão do SQL estou rodando ?

SELECT @@version

Tabela mais completa, impossível:

SQL Server Builds


Abracos,

Pericles.

segunda-feira, 6 de dezembro de 2010

Compêndio XML

Olá a todos,

estava estudando para a prova 70-433 do SQL 2008, e segundo o descritivo da prova, caem várias questões sobre XML, então saí em busca de mais informações sobre o assunto.

Encontrei na revista Plugmasters, vários artigos do nosso colega Gustavo Maia Aguiar, inclusive cito o blog dele nos posts anteriores.

Fiz uma compilação dos artigos sobre XML que ele escreveu naquele site, e cheguei a um documento com 75 páginas !

São artigos sobre SQL 2005, porém servem muito bem de base para o 2008.

Achei que o resultado ficou interessante, e seria de muita importância que outras pessoas pudessem ter acesso a este material, então consultei o Gustavo, para obter uma autorização de publicação deste material no meu blog, e fiquei muito feliz em saber que ele gostou da idéia.

Bem, sem mais explicações, segue o link do material.
Na primeira página, estão listados os artigos que fazem parte do documento.

Arquivo:
Compendio XML -Gustavo Maia.pdf

São artigos muito bem ilustrados, inclusive com vários exemplos !

Blog do Gustavo:
http://gustavomaiaaguiar.spaces.live.com/

Revista Plugmasters:
http://www.plugmasters.com.br

abraços e até mais.
Péricles.

domingo, 8 de agosto de 2010

Ferramentas Úteis

Olá galera,

gostaria de citar duas ferramentas muito interessantes que utilizei recentemente.

A primeira me ajudou a recuperar uma base corrompida.
Depois de tentar todo tipo de comando DBCC no SQL Server, pesquisei e baixei algumas ferramentas de Recovery, e a única que resolveu o problema foi esta:

RECOVERY FOR SQL SERVER
http://www.officerecovery.com/mssql/index.htm


A segunda, como todos sabem, na versão Express do SQL 2005/2008, não está incluído o SQL Profiler, ferramenta essencial para detectar problemas de performance... encontrei esta aí, com uma interface muito parecida com o original inclusive:

ANJLAB SQL PROFILER

http://sites.google.com/site/sqlprofiler/

Vale a pena conferir.

abraços,

Péricles Sevegnani.

quinta-feira, 10 de junho de 2010

Performance Tuning no SQL Server

Olá,

gostaria de abordar um tema que está começando a gerar interesse de muitos administradores de banco de dados: "performance tuning" ou melhoria de desempenho.

Seu banco de dados está crescendo, o servidor fica cada dia mais lento, você começa a procurar as possíveis causas da lentidão, e se pergunta: onde está o problema ?

Raramente, a resposta é simples.
Encontrar um serviço/processo rodando no servidor que está tomando muito tempo de CPU; anti-virus; baixar a última atualização; são alguns exemplos... mas convenhamos, é praticamente uma loteria.

Na maioria dos casos, o problema está relacionado a vários fatores.

Sem olhar seu sistema, eu diria que 90% dos problemas relacionados a performance estão na sua aplicação.

Portanto, faça sua lição de casa, e revise seu código, seu modelo de dados, sua metodologia de acesso aos dados, a forma de exibição, etc.

No mais, segue abaixo uma lista de boas práticas para manter seu servidor com uma boa performance.

As primeiras dicas são as que estão ao seu alcance, e não há necessidade de desembolso... em seguida, outras dicas que exigem um pouco de investimento.

1) Básicas:
- mantenha seu Windows com o último Service Pack disponível;
- mantenha seu SQL Server com o último Service Pack disponível + pacotes acumulativos (CUs);
- disponha de uma janela de manutenção mensal, onde você vai reindexar sua base de dados, com base no índice de fragmentação das tabelas mais críticas;
- desfragmente seu disco rígido também, com o serviço SQL Server desligado;
- se o seu database é grande (acima de 10Gb por exemplo), separe as tabelas por Filegroups, e distribua quando possível, estes Filegroups em discos rígidos diferentes;
- configure o anti-virus do servidor SQL Server para não escanear as pastas onde estão os arquivos MDF/NDF e LDF dos databases, tampouco as pastas dos System Databases;
- não instale impressoras no servidor SQL Server;
- evite compartilhamento com outras aplicações, isole seu servidor única e exclusivamente para o serviço SQL Server;
- coloque os Filegroups em outro disco rígido, assim como o TempDB;
- desligue as opções de Auto-Close e Auto-Shrink de cada database;
- revise as tabelas, de forma que as mesmas tenham Primary e Foreign Keys bem definidas, índices que estejam sendo utilizados;
- centralize o código, utilizando Stored Procedures - esta prática também evita tráfego de rede, deixando o processamento no servidor e retornando somente o resultado para aplicação;
- evite o uso de Cursores, prefira operações baseadas em blocos (set-based);
- faça backups completos diariamente.

2) Avançadas ($$$):
- adquira mais discos rígidos, você vai precisar para RAID e também para separar os arquivos;
- prefira RAID nível 10 (espelhamento e distribuição);
- disco rápido é SAS (antigo SCSI) - fuja de IDE e SATA;
- se puder, adquira uma unidade Storage (SAN, EVA, etc);
- compre memória RAM: o ideal é que o SQL Server trabalhe sempre utilizando o "cache", portanto, quanto mais memória melhor;
- não há uma recomendação padrão, pois os ambientes podem variar muito (OLTP e OLAP), mas sempre faço uma conta básica: 2GB de RAM para o sistema operacional; e o restante, pelo menos 25% da soma do tamanho dos databases para Buffer Pool do SQL Server, isto evita paginação;
- ou seja, se a soma dos seus databases for de aproximadamente 100GB, seu servidor SQL deveria ter em torno de 24GB de RAM (mínimo de 16GB, e ideal 32GB);
- particione as tabelas "gigantes", utilizando o recurso do próprio SQL Server, "partitioned tables"; para isto você vai precisar da versão Enterprise.

É claro que os tópicos apresentados são muito superficiais, e necessitam de um estudo adequado para cada caso, a idéia aqui foi dar uma "pincelada" nos principais.

Sinta-se à vontade para entrar em contato, e expor suas dúvidas, ou contribuir com mais alguma dica, terei maior prazer em publicar.

Obrigado, abraços e até a próxima!
Péricles Sevegnani.

segunda-feira, 4 de janeiro de 2010

Certificação Microsoft 5 Estrelas

olá a todos, feliz 2010 !

Que seja um ano de muitas conquistas e realizações a todos nós !

Abro este ano com um post sobre certificação Microsoft, mais especificamente sobre:

- certificação Microsoft 5 Estrelas
http://www.technetbrasil.com.br/cincoestrelas/

- prova 70-441 (2005 Designer).
http://www.microsoft.com/learning/en/us/Exam.aspx?ID=70-441&locale=en-us

O programa profissional 5 Estrelas (SQL) é uma iniciativa da Microsoft para preparar os usuários para a prova 70-431 e levar conhecimento a todos que gostam do assunto.

Obtive a 5a. estrela neste programa há alguns dias, porém... nem tudo são flores, como explico abaixo.

Recentemente, me preparei para a prova 70-441 (Designing Database Solutions with SQL 2005) e não obtive a pontuação necessária (score = 634, needed = 700), o que me frustrou muito, de certa forma, neste final de ano.

Porém, eu prefiro ser reprovado por falta de capacidade do que aprovado por sorte.

Digo isso, porque às vezes a experiência, que nos dá uma certa dose de confiança, que aliada a um estudo autodidata, garante um bom conhecimento, porém não é credencial para sucesso na prova.

Percebo que preciso estudar (muito) e aprender mais sobre: Service Broker, Integration Services e Reporting Services. Aliás, deixo como dica para aquele que decide fazer a 70-441.

Já vi em alguns fóruns que a 70-441 é a mais difícil, em comparação a 70-442. De qualquer forma, acredito que isto depende do perfil do profissional.

Enfim... meu planejamento para este ano é obter o MCITP Developer e Administrator, e para isto são 4 provas... extremamente difíceis... mas, vamos lá!

abraços,

Péricles.