SQL Server数据库中特定记录数的推荐硬件

时间:2010-01-18 08:58:45

标签: sql-server performance hardware

典型的SQL服务器数据库表中有多少条记录被认为是正常的?我的意思是,如果数据库中的某些表包含三四百万条记录,我应该考虑更换硬件,分区表等吗?我有一个查询只连接两个表,并在其WHERE子句中有一个带有ORDER By的四个条件。此查询通常需要3-4秒才能执行,但每执行10或20次执行一次,执行可能需要更长时间(10或20秒)(我认为这与参数嗅探无关,因为我正在重新编译每次查询)。如何在不到一秒的时间内改进查询以执行?我怎么知道它是如何实现的?我如何知道增加RAM量或增加新闻硬盘或增加CUP速度甚至改善表上的索引都会提高性能? 对此有任何建议将不胜感激:))

2 个答案:

答案 0 :(得分:1)

400万条记录不是很多。甚至Microsoft Access也可以管理它。

对于查询,即使3-4秒也是很长时间。当您遇到类似性能问题时,有95%的时间归结为:

  • 缺乏适当的索引;
  • 写得不好;
  • 一种不适合编写高性能查询的数据模型;
  • 未参数化查询颠覆查询缓存;
  • MVCC已禁用,并且您有长时间运行的事务阻止了SELECTS(开箱即用,这就是SQL Server的行为方式)。有关详细信息,请参阅Better concurrency in Oracle than SQL Server?

其中任何一项都与硬件无关。

除非记录很大或吞吐量非常高,否则硬件不太可能成为您问题的原因或解决方案。

答案 1 :(得分:0)

除非你正在做一些重量级join,否则3-4百万行不需要任何额外的硬件。我首先调查了是否有适当的索引,如果使用得当,等等。