2010-08-18 29 views
0

我只是切换组,他们目前所做的是让他们的中间层将XML传递给过程,然后使用xquery/xpath来解析xml并使用它获取信息并将其返回给应用程序( RETURN XML)。我只是好奇别人是否使用类似的过程,或者他们只是直接将数据传递给过程。我真的很喜欢它的灵活性,但它真的使程序变得丑陋,因为你必须解析XML,查询你的数据,并将数据格式化成xml(格式化对于SQL 2008来说是微不足道的)。将XML传递到过程

我最关心的是性能。我必须解析XML并将其放入tmp表或表变量,以便我可以在我的查询中使用它。

有什么想法?

回答

0

我有类似的方法,只适用于web服务,而不是存储过程。我会说,这不是一个好的做法,应该避免,除非绝对需要。

主要问题可能不是性能,但事实上,您正在创建GIGO(垃圾进出垃圾)组件,其中您没有调用方和过程之间的任何正式合同。这意味着输入/输出的错误数据可能会被忽略,你将会进行调试。

是的,你也会得到一些性能(可能在两层)。

+1

如果XML数据是强类型的(有一组与之相关的模式)会怎么样? – 2010-08-18 03:51:45

+0

这是更好,但仍然,对于大多数情况下它是矫枉过正。 不要误会我的意思 - 我确信有时候将XML传递给SP是有效的,就像当你需要传递复杂结构作为参数一样。但是,如果你使用它的所有程序,那肯定是有问题的。 – PiRX 2010-08-18 04:00:42