【TechTarget中国原创】XML 拆分选项概述
1、用其他语言在一个特定服务器上执行拆分操作
优势:
- 对较大的XML文件,拆分和剖析操作具有很快速的可测量性,通过T-SQL存储过程在相关的格式下将测量结果传入SQL Server。
- 在SQL Server上对CPU/RAM资源占用,显得更为友好。
- 利用C#,VB.NET等编程语言可以很容易的对XML进行维护,尤其是在分解复杂文件时的速度更快。
缺点:
- 在另外的应用程序层去开发和管理也就意味着会增加开发的工作量和时间。
2、利用T-SQL/ XQuery /Xpath在SQL Server的内部执行拆分
优点:
- T-SQL源于SQL Server,因此它的执行速度照比执行CLR代码要快。对比每台独立的服务器,具体的执行效率依赖于XML文档,处理方式,网络带宽和等等其它因素的不同而不同。
- 可以很容易的进行灾难恢复。
缺点:
- 对于所有的编程语言来说,目前XML功能的通用性还是很有限。
- CPU/RAM资源占用较大。
- 当SQL Server在超负荷工作的时候可测量性将会成为一个问题。
3、利用CLR存储过程在SQL Server本身执行分解
优点:
- 对于任何一种CLR编译语言如C# , VB.NET等都可以提供完整的功能。
- 利用读取器可以更有效的提高处理复杂XML文件的能力。
缺点:
- 由于需要在服务器上部署和维护程序集,使得可测量性和灾难恢复等问题变得复杂。
- SQL Server需要利用CLR引擎来执行解释性代码。这种方式在IL(内部代码)向机器代码转换的过程中会产生一个轻微的延迟,但是这也依赖于JIT(运行时编译执行技术)编译器的缓存能力所产生的影响。
- 当SQL Server在超负荷工作的时候可测量性将会成为一个问题。