我在一个ASP.NET应用程序中遇到超时异常,我可以将它归咎于导致它崩溃的SQL Server存储过程。
当我看到程序的执行计划时,发现几乎99%的查询执行成本是XML Reader with XPath Filter
。我实际上传递了一个参数CSV
,在我的程序中,我在XML Reader
的帮助下打破它以获取我的值。但对于这么简单的事情来说,效率并不高。
这是我的问题:
Declare @IDs varchar(max) = '1,2,7,234,74',
@xml xml= ''
Set @xml = N'<root><r>' + replace(@IDs,',','</r><r>') + '</r></root>'
select
t.value('.','varchar(max)') as ID
from
@xml.nodes('//root/r') as a(t)
任何可能有微小变化的替代方案?