关于系统中使用SQL XML

我们系统的开发是基于MSSQL XML的,在开发和维护中,一直对这个框架感到很多疑问,今天这些问题和微软的一个数据库专家聊了聊,总结如下:

一、MSSQL XML的设计是为了在Intranet上方便的存取数据。其中一个使用场景:在异构环境下,即不同系统进行数据库调用时使用。

二、如果把所有的操作都依赖XML,会有挺大的问题。至少在MSSQL2000中是这样。

三、SQL服务器,返回数据比返回XML快。

四、如果需要返回XML,可以通过DataSetàXML的方式。

五、通过业务曾把数据转化成XML,可以分散负荷,并且效率会高些。系统伸缩性好。

六、MSSQL处理并返回XML的消耗比较大。(理论上是,但未测试)

七、自己的项目中从没用过,都是基于DataSet的。

八、在同一个系统内,基本不需要通过SQL XML进行调用。

九、如果非要通过SQL XML调用,则应该注意:返回的XML应尽量和地称数据库设计无关,更多的用来表达业务信息。所以更适合有一个业务适配层,但是这个适配层如果放在数据库里做,则灵活性不好。除非是很简单的应用场景。这就是不用SQL XML的原因。

十、处理XML还是放在业务层里比较好。无论从架构还是编程角度来说,都是比较好的方法。

十一、       SQL XML定位在应用层就会比较痛苦。

十二、       在系统内部,使用DataSet方式很好,使用简单,功能强大。

十三、       建立连接时所有成本里是最高的,pooling减少了connection的成本。

十四、       围绕着SQL XML进行查询,使查询的成本增加,使原来小的查询做的工作,必须用复杂查询来完成,使得数据库资源利用率下降。表现在锁的粒度加大,查询优化器优化放案不佳。

 

你可能感兴趣的:(sql)