我在我的服务器上运行了7个XML解析器(从第三方网站获取数据)。
当我单独运行每个XML Parser时,需要大约1分钟才能通过15MB XML(这是非常巨大的)。
当我同时运行所有7个时,每个完成运行大约需要10分钟。
每个XML都会向数据库添加大量信息,并运行大约50,000个查询。
我运行解析器的服务器是:
在2个CPU上运行SQL Server Web Edition
当所有解析器并行运行时,问题出现了,SQL Server的CPU达到了100%。
真正重要的问题是,我将来需要大约50个XML解析器:(
你对男人有什么建议?我应该升级XML服务器吗?还是服务器本身?
也许SQL Server在1个CPU上运行而不在2个CPU上运行?我怎么检查呢?
任何建议都会有所帮助......
答案 0 :(得分:1)
有同样的问题。我有600,000行XML,即使在一小时后也没有完成处理。 对我来说有用的是将XML分解成更小的块并将块插入临时表(我的XML描述了电视鞋,所以我把它分成200个不同的通道),现在整个XML需要1分钟
答案 1 :(得分:0)
即使CPU处于100%,我认为这里的瓶颈是I / O.特别是因为你说你有几个进程同时读取和写入磁盘的数据。你能检查服务器上的I / O吗?
如果进程遇到不同的表,可能会有一些事情可以做,例如使用文件组将数据库拆分为不同的HD。
如果他们遇到相同的表,你可能遇到阻塞问题,解析器A试图将数据读取到同一个表B解析器写入。我建议,只是测试并找出这是否真的是问题,运行你的进程隔离级别读取uncommited。如果运行正常,你就会知道问题所在。