Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
1177
Assunto : SQL Server
Titulo: Simplificando a síntaxe de queries em XML tipados

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




No artigo que escrevi para o simple-talk (https://www.simple-talk.com/sql/database-administration/exploring-query-plans-in-sql/ ) demonstrei um dos casos em que queries em XML tipado são muito úteis. Porém a necessidade de especificar o namespace nas queries torna a sintaxe um pouco desagradável.

Para simplificar um pouco a síntaxe temos um recurso de declarar o namespace XML no inicio da query, ao invés de fazer isso nas funções.

Veja por exemplo a query para localizar index scans no cache:

select qp.query_plan,qt.text from sys.dm_exec_query_stats
CROSS APPLY sys.dm_exec_sql_text(sql_handle) qt
CROSS APPLY sys.dm_exec_query_plan(plan_handle) qp
where qp.query_plan.exist('declare namespace
qplan="http://schemas.microsoft.com/sqlserver/2004/07/showplan";
//qplan:RelOp[@LogicalOp="Index Scan"
or @LogicalOp="Clustered Index Scan"
or @LogicalOp="Table Scan"]')=1

Podemos alterar essa síntaxe para o seguinte:

With XMLNamespace
(default 'http://schemas.microsoft.com/sqlserver/2004/07/showplan')
select qp.query_plan,qt.text from sys.dm_exec_query_stats
CROSS APPLY sys.dm_exec_sql_text(sql_handle) qt
CROSS APPLY sys.dm_exec_query_plan(plan_handle) qp
where qp.query_plan.exist('//RelOp[@LogicalOp="Index Scan"
or @LogicalOp="Clustered Index Scan"
or @LogicalOp="Table Scan"]')=1

Com a declaração do namespace default no inicio da query, ele é assumido nas expressões xquery existentes na query.

Veja mais detalhes sobre isso em http://cidadaocarioca.blogspot.com.br/2015/02/simplificando-sintaxe-de-queries-em-xml.html


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
data: 10/14/2016 9:45:00 PM
nome: LawrQoGhfzu
email: jimos4581rzt@hotmail.com
comentário:
jzezQ3 http://www.FyLitCl7Pf7kjQdDUOLQOuaxTXbj5iNG.com

data: 10/14/2016 9:34:00 PM
nome: mRHyfDKYVwphKWRDPj
email: jimos4581rzt@hotmail.com
comentário:
ZJnNKB http://www.FyLitCl7Pf7kjQdDUOLQOuaxTXbj5iNG.com

data: 8/12/2016 7:32:00 AM
nome: ivvnYhdlfBHkreSr
email: jimos4581rt@hotmail.com
comentário:
q8F7j7 http://www.FyLitCl7Pf7kjQdDUOLQOuaxTXbj5iNG.com

 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