如何改进SQL Server 2012超时问题 - 大型数据库

时间:2015-10-20 09:11:32

标签: sql-server sql-server-2012

我们为一家无力支付SQL DBA的小公司工作,也没有咨询。

从一个小项目开始,现在已成为一个包含大量数据的全面系统。

我需要有人帮助我理清性能改进。我意识到没有人能够直接帮助并完全解决这个问题,但我只是想确保我已经覆盖了我的轨道。

好的,问题基本上是我们对缓存数据的查询遇到了超时问题。我用c#代码增加了超时时间,但是当它变得荒谬时我才能走得那么远。

当前设置是一个数据库,每隔5/10秒就会插入一次数据!在此过程中,我们从csv文件中填充表。过夜我们运行数据缓存过程,以减少"插入"表。最初我们能够将超过1000万行转换为400000行,但由于用户需要更多过滤,我们必须包含更多数据行,当然还会将数据缓存表的数量从400000行增加到1-300万行。

在我的SQL开发服务器上(没有每5秒插入一次数据)过去需要30秒才能在数据缓存表上运行500万行查询,现在有索引和一些改进它现在已经17秒。实时服务器具有标准SQL Server,过去需要57秒,现在为40秒。

我们有15个以上的实例运行相同数量的数据库。

到目前为止,我们已经概述了以下改进系统的方法:

  • 对某些数据缓存表进行索引 - 数据库现在变得膨胀,并减缓了一夜之间的进程。
  • 增加CommandTimeout
  • 将数据库移至SSD

最近的改进可能:

  • 意识到我们必须将csv文件移到另一个硬盘而不是SQL Server数据库所在的同一个SSD驱动器上。
  • 可能使用文件组来建立索引或缓存表 - 不确定SQL Server标准是否会涵盖此内容。
  • 企业版和分区表数据 - 客户可能会为此付费,但我们当然无法承担这一责任。

正如我所说,我正在寻找粗略的指导方针,并且意识到没有人可以帮助完全解决这个问题。我们是一个小团队,没有人扩展SQL Server体验。客户想要答案,我们已经尝试了我们所知道的一切。顺便提一下,他们在Excel中有一个小规模的版本,并说他们没有发现任何问题,为什么我们呢?!?!?

希望有人可以提供帮助。

0 个答案:

没有答案