![]() |
|
Spaces home Fabiano Neves Amorim - S...PhotosProfileFriends | ![]() |
|
|
August 18 Falando sobre TechEd Brasil 2008 - Faça parte desta EXPERIÊNCIA!Galera, o TechEd Brasil 2008 a está chegando, o MVP Helerson postou um banner onde tem alguns detalhes como Datas e local. Citação TechEd Brasil 2008 - Faça parte desta EXPERIÊNCIA! August 16 Nova Geração de Notebooks DELLQuad Core, 16Gb RAM, 1TB RAID, 1Gb de vídeo.
Se alguém quiser fazer uma doação compra esse notebook pra mim por favor.
Ficarei bastante agradecido.
Video:
Site: August 08 10 pontos que devem ser observados quanto a performance de uma consulta Parte - 46. Substituir o uso de CURSOR pelo comando WHILE + tabelas temporárias ou Variáveis do tipo table.
7. Verificar se as variáveis no WHERE são do mesmo DataType que a coluna da tabela.
8. Verificar se existe uso de variáveis do tipo Table para grande volume de dados, pois isso pode causar problema de performance já que variáveis do tipo table não usam proveito de paralelismo e não criam estatísticas com os dados da tabela. 9. Verificar se é possível usar o conceito de Hash Index usando o CheckSum para gerar o número HASH, Caso existam colunas com valores muito grandes as vezes compensa usar o CheckSum para gerar o Hash e depois indexar a coluna hash.
10. Evite usar a clausula IN.
Espero que tenham gostado, eu adorei J, gostei tanto que vou começar a escrever uma série de artigos sobre o Query Optimizer, fiquem de olho... 10 pontos que devem ser observados quanto a performance de uma consulta Parte 3Seguindo a série de boas práticas em relação a performance...
4. É muito comum durante o desenvolvimento de um código SQL necessitarmos zerar o valor das variáveis que serão utilizadas no código. Uma dica em relação a performance é que o comando SELECT é mais rápido do que o SET, porém está regra só se aplica quando podemos substituir um bloco de SET por um SELECT por ex:
5. Pequenas dicas para procedures.. a. Sempre que uma procedure é executada o server envia para o client o número de linhas afetadas pela procedure, normalmente esta informação não é necessária. Desabilitando este comportamento poderemos reduzir o trafego gerado pelo Server e o Client. Portanto sempre que possível inclua o SET NOCOUNT ON no início de suas procedures. Pode ser que isso não gere muita diferença em uma proc que efetua 1 insert mas quando estamos falando de um loop que efetua 1000000 de inserts daí com certeza vai ser um grade ganho de trafego desnecessário que estaria rolando na rede. b. Só use a opção WITH ENCRYPTION e WITH RECOMPILE caso seja realmente necessário. Lembre-se de que existem programas que conseguem descriptogravar um proc que está criptografada no banco. c. Não inicie o nome de suas procedure com sp... este prefixo é reservado para procedures do sistema, sempre que você executa uma procedure que inicia com sp... o SQL irá procurar a proc no banco Master e se ela não estiver lá então ele irá resolver o nome da proc no banco atual. Evite este passo adicional simplesmente renomeando as procedures para por exemplo usp ou st. d. Caso tenha que rodar algum código TSQL no meio da proc evite utilizar o EXEC ao invés disso use a sp_ExecuteSQL pois ao contrário do EXEC a sp_ExecuteSQL irá compilar o SQL para gerar um plano de execução para sua consulta, o quer dizer que caso o plano já tenha sido gerado na próxima execução do código ele irá utilizar o plano que ficou em cachê, evitando a recompilação do código a cada execução. August 06 FIX e Patchs de Correção IIAinda falando sobre atualização e correções do SQL Server, segue um site MUITO bom que contem todos os updates do SQL e qual o número de cada Build.
Esse vale ir pro favoritos.
August 05 FIX e Patchs de CorreçãoPessoal vamos ficar atentos para os Fix de correção de erros do SQL Server, não basta atualizar até o último Service Pack e esperar pelo próximo SP pois tem existem várias correções que são lançadas e que ainda não estão em um Service Pack.
Nos últimos 2 meses tivemos problema 2 problemas em nossos clientes que estavam com uma versão com um problema que já havia sido corrigido.
1º Problema;
O primeiro foi em um cliente que utilizava SQL Server 2000 com Service Pack 3, e tivemos um erro que ao rodar uma consulta com um where IS NULL mesmo assim retornava um valor que não era NULL. Por ex:
select * from tabela where Cod IS NULL
O comando acima retornava um Cod que não era null contrariando o filtro do WHERE. Este problema foi corrigido no SP 4 do SQL 2000, como podemos ver no KB abaixo.
FIX: A parallel query may return unexpected results http://support.microsoft.com/kb/814509/en-us
Para resolver temporariamente até o cliente atualizar seu servidor utilizamos a clausula OPTION (MAXDOP 1) nos selects.
2º Problema;
Outro erro que pegamos foi no SQL Server 2005 SP2 onde ao rodar uma procedure com um texto muito grande e usando a opção WITH ENCRYPTION o SQL gerava um erro. Este problema foi corrigido com um FIX que já foi lançado e é bem provável que estará entre os FIX de correção que serão lançados com o SP3 do SQL Server 2005, podemos ver mais detalhes do problema e baixar o FIX no KB abaixo.
FIX: Error message when you run a long stored procedure that is encrypted in SQL Server 2005: "A stack overflow occurred in the server while compiling the query" http://support.microsoft.com/kb/934246/en-us
Scripts and Tools for Performance Tuning and Troubleshooting SQL Server 2005E tem gente que ainda pergunta porque eu gosto da Microsoft!
Acesse e pegue uma coleção muito boa de scripts para o SQL Server 2005.
Aproveitando o embalo acesse o Toolbox do CAT para mais arquivos e aplicativos úteis para SQL.
August 01 Community Zone 2008Acabei de receber um convite para participar do Community Zone 2008 que será no Hotel Vila Santo Agostinho em Bragança Paulista.
Show de Bola! Baseado no que vi dos eventos anteriores a este deve ser muito bom. Fora que irei estar no meio dos maiores influenciadores e colaboradores da Microsoft...
Para enviar o convite eles avaliaram a minha contribuição nas comunidades técnicas como:
• Fóruns de discussão (quantidade de respostas com alta qualidade e/ou moderação); • Artigos técnicos publicados na comunidades MSDN e TechNet; • WebCasts entregues através do MSDN e TechNet; • Eventos Presenciais; • Contribuições com grupo de usuários; • Participação em Projetos dos Centros de Inovação e/ou Adoption Labs da Microsoft
Já confirmei minha presença, quando eu voltar conto como foi J
July 25 Tem lógica ?Meu Deus, cada uma que aparece, vejam isso.
O mais novo MVP em SQL Server Denis Gobo postou no Blog dele.
SQL Teaser: Where Clause Gone Wild Try to guess what this WHERE clause is supposed to do. WHERE r.ApptId IS NULL AND r.DATE >= ISNULL(NULL , '1/1/1900') AND r.DATE < DATEADD(d , 1 , ISNULL(NULL , '1/1/3000')) AND --Filter on resource ( ( NULL IS NOT NULL AND r.DoctorResourceID IN ( NULL ) ) OR ( NULL IS NULL ) ) AND --Filter on facility ( ( NULL IS NOT NULL AND r.FacilityID |