Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 当表值参数(TVP';s)不可用时,如何处理SQL Server XML存储过程参数?_Sql Server 2005_Stored Procedures_Xml Parsing_Sql Server 2008 R2 - Fatal编程技术网

Sql server 2005 当表值参数(TVP';s)不可用时,如何处理SQL Server XML存储过程参数?

Sql server 2005 当表值参数(TVP';s)不可用时,如何处理SQL Server XML存储过程参数?,sql-server-2005,stored-procedures,xml-parsing,sql-server-2008-r2,Sql Server 2005,Stored Procedures,Xml Parsing,Sql Server 2008 R2,当您没有SQL Server 2008(TVP)时,将XML参数传递到存储过程的好处是,如果您的参数要求发生更改,您不必重新编译/等您的应用程序 我认为将数据作为XML保存在表字段中不是最好的主意,存储过程应该解析传入的XML并填充表中的相关字段。但是,我们也可以轻松地对表中字段中包含的XML进行选择/筛选查询 在解析XML和填充适当字段时引入了什么样的延迟,这样做有什么好处吗 在高流量环境中,哪种策略是最佳策略?这取决于具体情况。这是一个非常广泛的问题。通常,解析XML需要大量处理(本例中没有

当您没有SQL Server 2008(TVP)时,将XML参数传递到存储过程的好处是,如果您的参数要求发生更改,您不必重新编译/等您的应用程序

我认为将数据作为XML保存在表字段中不是最好的主意,存储过程应该解析传入的XML并填充表中的相关字段。但是,我们也可以轻松地对表中字段中包含的XML进行选择/筛选查询

在解析XML和填充适当字段时引入了什么样的延迟,这样做有什么好处吗


在高流量环境中,哪种策略是最佳策略?

这取决于具体情况。这是一个非常广泛的问题。通常,解析XML需要大量处理(本例中没有XML索引)。您的高流量是大量插入还是大量选择

如果适用的话,解析到表中可能会有很多好处。如果您不需要查询它,并且您正在存储XML以便以后以相同的形式返回它,那么就没有什么好处了

这完全取决于表中的其余数据,以及插入/更新vs选择和其他维护的时间。一个好的媒介可能是插入带有索引的XML。 我知道没有最好的策略,但我的目标是在插入时对其进行解析,并将其存储在单独的字段中,这样做的好处包括引用完整性、索引、更快的查询和更低的存储成本等等


在比较不同的方法时,可以使用查询计划和等待统计信息

这将是一个流量非常大的操作,因此我认为我可以选择不进行XML解析。输入参数可能不会改变,如果它们改变了,对我来说修改存储过程签名就不会有什么问题。在过去,我保存了原始XML,只解析出所需的字段,选择不完全解析XML,因为需求没有这样做。我在寻找使用SQLServer解析XML时的一些性能指标。