MCDBA Brasil


  • Home
  • Sobre
  • Contato

Livros





Links Rápidos

SQL Server Builds (All Versions/Editions)


Download SQL Server 2017 (trial)


SQL Server 2017 Feature Pack


SQL Server 2016 Feature Pack


Cumulative Update SQL Server 2017 builds


Cumulative Update SQL Server 2016 builds


Cumulative Update SQL Server 2014 builds


Cumulative Update SQL Server 2012 builds


SQL Server 2005/2008 Samples Databases


Documentando o Servidor SQL Server


Analisando a Performance do Servidor-CheckList


Virtual PASS PT


Faça parte do maior virtual chapter do PASS com conteúdos técnicos em Português sobre SQL Server.

Todos os meses um evento Online para você! Acompanhe aqui os WebCasts já agendados

Sindicalize seu blog ou site ao VirtualPASSPT

SQL Server Blogs

SQL Server Query Processing Team


SQL Programmability & API Development Team


SQL Server Manageability Team


Latin America Support Team


Database + Disk + Performance


Microsoft SQL Server Support


SQL CLR Team


SQL Query Optimization Team


SQL 2005 Code Samples


SQL Server Express Team


SQL SMO Samples


SQL Storage Engine Team


SQL CAT Team


SQL Protocols Team


PSS SQL Server Engineers


Slava Oks on SQLOS


Ken Henderson’s blog


LUTI@Microsoft Blog


kimberly L. Trip’s blog


Fernando Garcia Blog

Dica da Semana

Validando os scripts transmitidos

por Nilton Pinheiro fevereiro 7, 2005 Nenhum comentário

A questão são as procedures, sobre as quais o DBA certamente terá muita dificuldade de manter o controle. É no momento de implantação das procedures no ambiente de qualidade que o DBA deve checa-las. Mas a questão é : Como checar 100 ou mais procedures que o sistema pode possuir ?

Um truque que auxilia esta tarefa é utilizar querys sobre a tabela syscomments para identificar problemas mais graves relativos ao descumprimento de padrões de desenvolvimento. Veja alguns exemplos :


Identificando a falta de Set NoCount On
O Set Nocount on é uma instrução que, quando utilizada nas procedures, garante uma melhor otimização das procedures, pois evita que a contagem de registros afetados, aquela que normalmente é mostrada pelo query analyzer, seja gerada e transmitida pela rede. Portanto o DBA deve identificar procedures que estejam sem o Set NoCount On. Claro que ele não poderá olhar uma por uma, serão muitas. Para resolver isso podemos realizar querys sobre a tabela syscomments, que contém o código fonte de todas as procedures geradas. Eis a instrução SQL para fazer isso :


SELECT name FROM syscomments a,sysobjects b WHERE a.id=b.id and b.xtype=’P’ AND NOT EXISTS (SELECT id FROM syscomments WHERE text LIKE ‘%set%nocount%on%’ AND id=a.id) ORDER BY name


Identificar procedures que utilizam cursores
Cursores geram grande prejuizo para a performance. O DBA precisa identificar procedures que fazem uso de cursores e analisa-las para garantir que não existe nenhuma forma alternativa de escrevê-las.Eis a instrução SQL para fazer isso:


SELECT a.id,b.name FROM syscomments a,sysobjects b WHERE a.id=b.id AND a.text LIKE ‘%open %’


Identificar procedures que utilizam tabelas temporárias
As tabelas temporárias geram grande consumo de performance, podem gerar problemas quando utilizadas em ambientes que realizam poolings de conexão. Desta forma cabe ao DBA analisar procedures desenvolvidas com tabelas temporárias e verificar se não existem formas alternativas de codifica-las. Eis a instrução SQL para identificar tais procedures:


SELECT a.id,b.name FROM syscomments a,sysobjects b WHERE a.id=b.id AND a.text LIKE ‘%#%’


Identificar procedures que estejam utilizando UNION sem ALL
A falta do ALL no UNION dificulta o uso de índices e prejudica a performance da aplicação. O DBA precisa identificar procedures que estejam utilizando UNION sem ALL e corrigir o problema. Veja o script para identificar tais procedures :


SELECT a.id,b.name FROM syscomments a,sysobjects b WHERE a.id=b.id AND a.text NOT LIKE ‘% UNION ALL%’ AND a.text LIKE ‘% UNION %’ AND b.xtype=’P’

Identificar procedures que estejam fazendo montagem e execução de strings
A montagem e execução de strings é extremamente prejudicial para a performance, pois o SQL Server só é capaz de determinar como a execução será feita em run-time. Quando existe alternativa, é preferível evitar isso. Mais uma vez cabe ao DBA identificar e corrigir este problema. Veja a instrução utilizada para identificar isso:


SELECT a.id,b.name FROM syscomments a,sysobjects b WHERE a.id=b.id AND (a.text LIKE ‘%EXEC(%’ OR a.text LIKE ‘%execute(%’)


Fonte: Búfalo

Avaliação:
Compartilhe:
  • Anterior Transferindo domínios21 anos atrás
  • Próximo Rebuilding SQL Server Cluster Nodes21 anos atrás

Deixe uma resposta Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

MVP Reconnect Award

Categorias

  • Artigos (359)
  • Dica da Semana (95)
  • Documentação (54)
  • Downloads (113)
  • MSDE 2000 (3)
  • Sem categoria (1)
  • Tutoriais (9)

Posts recentes

  • #FechouBrasil #PartiuPortugal
  • Brigando com o erro “The cached MSI file is missing”
  • MCDBABRASIL está de volta
  • Documentando o Servidor SQL Server
  • Brigando com os Erros 17182, 17826 e 17120

SQL Server AlwaysOn Video Series

Video1: Introdução ao SQLServer2012 AlwaysOn


Video2: Introdução ao SQLServer2012 AlwaysOn Availability Group


Video3: Introdução ao SQLServer2012 AlwaysOn AVG-Demo


Video4: Introdução ao SQLServer2012 AlwaysOn Listener


Video5: Introdução ao SQLServer2012 AlwaysOn Readable Secondaries


Video6: Introdução ao SQLServer2012 AlwaysOn Readable Secondaries-Demo


Video7: Introdução ao SQLServer2012 AlwaysOn Failover Clustering


Serie SQL Server Failover Clustering End-to-End

Parte 1: Configuração da Rede e Ambiente


Parte 2: Configurando o Windows 2008 R2 Domain Controler e DNS


Parte 3: Preparando os nós para o Failover Cluster


Parte 4: Configurando um Failover Cluster de 2 nós


Parte 5: Configurando as LUNs no iSCSI Software Target (Parte 1)


Parte 6: Configurando as LUNs no iSCSI Software Target (Parte 2)


Parte 7: Apresentando as LUNs para os nós do Failover Cluster


Parte 8: Configurando os discos no Failover Cluster


Parte 9: Instalando a primeira instância virtual do SQL Server 2008


Parte 10: Instalando a segunda instância virtual do SQL Server 2008


Parte 11: Instalando e Configurando o MSDTC no Failover Cluster


Parte 12: Configurando Mount Points no Cluster e SQL Server 2008


Vídeo Extra: Removendo uma Instância do SQL Server 2008 R2 em Cluster


Alta Disponibilidade no SQL Server 2008 R2: Failover Clustering Overview


Alta Disponibilidade no SQL Server 2008 R2: Failover Clustering na Prática

Menu

  • Home
  • Sobre
  • Contato

Mais

  • RSS Feeds
2026 MCDBA Brasil.