Sql server SQL Server数据库中特定数量记录的推荐硬件
对于一个典型的SQL Server数据库表,有多少条记录被认为是正常的?我的意思是,如果数据库中的一些表包含像三或四百万条记录之类的东西,我应该考虑替换硬件、分区表等等吗?我得到了一个查询,它只连接了两个表,并且在WHERE子句中有四个条件和ORDERBY。此查询通常需要3-4秒来执行,但每执行10或20次,可能需要更长的时间(10或20秒)来执行(我认为这与参数嗅探无关,因为我每次都在重新编译查询)。如何改进查询以在不到一秒钟的时间内执行?我如何知道如何才能实现这一目标?我如何知道增加RAM的数量、增加新闻硬盘驱动器、提高CUP速度甚至改进表上的索引是否会提高性能?Sql server SQL Server数据库中特定数量记录的推荐硬件,sql-server,performance,hardware,Sql Server,Performance,Hardware,对于一个典型的SQL Server数据库表,有多少条记录被认为是正常的?我的意思是,如果数据库中的一些表包含像三或四百万条记录之类的东西,我应该考虑替换硬件、分区表等等吗?我得到了一个查询,它只连接了两个表,并且在WHERE子句中有四个条件和ORDERBY。此查询通常需要3-4秒来执行,但每执行10或20次,可能需要更长的时间(10或20秒)来执行(我认为这与参数嗅探无关,因为我每次都在重新编译查询)。如何改进查询以在不到一秒钟的时间内执行?我如何知道如何才能实现这一目标?我如何知道增加RAM的
如果您对此有任何建议,我们将不胜感激:)除非您正在进行一些重磅
连接,否则300-400万行不需要任何额外的硬件。我首先调查了是否有合适的索引,是否正确使用了索引等等。除非你做了一些重量级的join
s,否则300-400万行不需要任何额外的硬件。我首先调查是否有合适的索引,是否正确使用了索引等等。400万条记录并不多。即使是微软Access也可以做到这一点
即使是3-4秒的查询时间也是很长的。95%的情况下,当您遇到这样的性能问题时,可以归结为:
- 缺乏适当的指标李>
- 写得不好的查询李>
- 不适合编写性能查询的数据模型李>
- 未经参数化的查询对查询缓存进行重击李>
- 已禁用,并且您有阻止选择的长时间运行的事务(SQL Server就是这样操作的)。有关这方面的更多信息,请参阅
这些都与硬件无关
除非记录数量巨大或吞吐量极高,否则硬件不太可能成为问题的原因或解决方案。400万条记录并不多。即使是微软Access也可以做到这一点
即使是3-4秒的查询时间也是很长的。95%的情况下,当您遇到这样的性能问题时,可以归结为:
- 缺乏适当的指标李>
- 写得不好的查询李>
- 不适合编写性能查询的数据模型李>
- 未经参数化的查询对查询缓存进行重击李>
- 已禁用,并且您有阻止选择的长时间运行的事务(SQL Server就是这样操作的)。有关这方面的更多信息,请参阅
这些都与硬件无关
除非记录巨大或吞吐量极高,否则硬件不太可能是问题的原因或解决方案。非常感谢您的回答!我将在另一个问题上发布我的查询,以讨论其性能。顺便问一下,在sql server中有多少记录被认为是巨大的?这取决于记录的大小和数据库吞吐量。没有固定的号码。我不认为我真的会担心,直到它达到10亿或1亿。超大数据库(VLDB)的定义是主观的/有争议的,Wiki将一个常见的基准列为1Tb或数十亿行-鉴于SQl Server现在在30分钟内加载了1Tb的数据()该定义看起来有些过时。cletus,我把我的问题贴在这里:你能看一下吗?非常感谢你的回答!我将在另一个问题上发布我的查询,以讨论其性能。顺便问一下,在sql server中有多少记录被认为是巨大的?这取决于记录的大小和数据库吞吐量。没有固定的号码。我不认为我真的会担心,直到它达到10亿或1亿。超大数据库(VLDB)的定义是主观的/有争议的,Wiki将一个常见的基准列为1Tb或数十亿行-鉴于SQl Server现在在30分钟内加载了1Tb的数据()该定义看起来有些过时。cletus,我把我的疑问贴在这里:你能看一下吗?