Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
395
Assunto : SQL Server
Titulo: Como encontrar problemas em procedures

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



Os DBAs normalmente fornecem uma série de recomendações para os programadores sobre o que fazer e o que não fazer nas procedures. Mas pode ser difícil para o DBA verificar procedure por procedure para descobrir como encontra-se o código. Porém com os selects abaixo o DBA pode obter uma lista de procedures que encontram-se com alguns problemas específicos, veja :

-- Listar procedures que utilizam cursores
select a.id,b.name from syscomments a,sysobjects b where a.id=b.id and a.text like '%open %'

-- (Cursores geram muita perda de performance e devem ser evitados ao máximo)

-- Listar procedures que utilizam tabelas temporárias
select a.id,b.name from syscomments a,sysobjects b where a.id=b.id and a.text like '%#%'

-- (Em geral poderia ser substituidas por variáveis table, novo recurso do sql -- 2000)

-- Listar procedures que não possuem set nocount on
select a.id,b.name from syscomments a,sysobjects b where a.id=b.id and a.text not like '%set nocount on%'
and b.xtype='P'

-- (set nocount on gera uma otmização na comunicação de rede)

-- Listar procedures com UNION sem ALL
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'

-- (Union ALL garante um melhor uso de indexação)

-- Listar procedures que utilizam EXEC de strings
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(%')

-- Essa prática é simplesmente terrível para performance, por fazer com que o ---- sql server tenha que compilar o código na hora da execução


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
data: 11/27/2017 2:25:00 PM
nome: dgvXLAtupIeO
email: jimosanil0c@hotmail.com
comentário:
11V0IP http://www.LnAJ7K8QSpfMO2wQ8gO.com

data: 11/9/2011 3:06:00 PM
nome: Dennes
email: dennes@bufaloinfo.com.br
comentário:
Oi,

Esse código é antigo, mas se você adicionar filtros pelo tipo de objeto irá evitar que as rules apareçam.

Mas se quer dizer que as procedures não estão na syscoments, bem, isso é uma situação fora do padrão - mas que as vezes, em algumas excessões, ocorre.

Abs,

Dennes


data: 11/8/2011 2:47:00 PM
nome: Xprata
email: xprata@ig.com.br
comentário:
Boa tarde..estou usando o exemplo

-- Listar procedures que não possuem set nocount on
select a.id,b.name from syscomments a,sysobjects b where a.id=b.id and a.text not like '%set nocount on%'
and b.xtype='P'

Mas na syscomment, existe so informações das rules....tem 7 registro la...referente a 7 regras....
O que devo fazer?
Obrigado


 1  
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br