SQL Server性能问题

时间:2012-02-29 09:19:04

标签: .net sql sql-server hardware windows-server-2008-r2

我在我的服务器上运行了7个XML解析器(从第三方网站获取数据)。

当我单独运行每个XML Parser时,需要大约1分钟才能通过15MB XML(这是非常巨大的)。

当我同时运行所有7个时,每个完成运行大约需要10分钟。

每个XML都会向数据库添加大量信息,并运行大约50,000个查询。

我运行解析器的服务器是:

  • 服务器类型:Hp Dl180 g6
  • 处理器类型:Intel Xeon E5504
  • 处理器速度:2000 Mhz
  • CPU数量:2
  • 核心数:4
  • RAM:16 GB

在2个CPU上运行SQL Server Web Edition

当所有解析器并行运行时,问题出现了,SQL Server的CPU达到了100%。

真正重要的问题是,我将来需要大约50个XML解析器:(

你对男人有什么建议?我应该升级XML服务器吗?还是服务器本身?

也许SQL Server在1个CPU上运行而不在2个CPU上运行?我怎么检查呢?

任何建议都会有所帮助......

2 个答案:

答案 0 :(得分:1)

有同样的问题。我有600,000行XML,即使在一小时后也没有完成处理。 对我来说有用的是将XML分解成更小的块并将块插入临时表(我的XML描述了电视鞋,所以我把它分成200个不同的通道),现在整个XML需要1分钟

答案 1 :(得分:0)

即使CPU处于100%,我认为这里的瓶颈是I / O.特别是因为你说你有几个进程同时读取和写入磁盘的数据。你能检查服务器上的I / O吗?

如果进程遇到不同的表,可能会有一些事情可以做,例如使用文件组将数据库拆分为不同的HD。

如果他们遇到相同的表,你可能遇到阻塞问题,解析器A试图将数据读取到同一个表B解析器写入。我建议,只是测试并找出这是否真的是问题,运行你的进程隔离级别读取uncommited。如果运行正常,你就会知道问题所在。