返回500万条记录的查询需要多长时间?

ali*_*c83 13 sql database sql-server sql-server-2008

我意识到答案应该是'尽可能少的时间',但我正在努力学习如何优化数据库,我不知道我的硬件可接受的时间是多少.

首先,我使用我的本地机器与sql server 2008 express的副本.我有一个双核处理器,2GB内存和64位操作系统(如果这有所不同).我只使用一个包含大约6个varchar字段的简单表.

起初我没有任何索引查询数据.这花了很长的时间,所以我取消并添加了一个聚集索引(使用PK)到表.这将时间缩短到1分14秒.我不知道这是否是我能得到的最好的,或者我是否还能进一步降低这一点?

我受限于我的硬件还是我可以对我的表/数据库/查询做些什么来更快地获得结果?

仅供参考我只使用标准的SELECT*FROM来检索我的结果.

谢谢!

编辑:只是为了澄清,我只是为了测试目的这样做.我不需要提取所有数据,我只是使用它作为一致的测试,看看我是否可以减少查询时间.

我想我要问的是:除了a)升级硬件和b)添加索引(假设架构已经很好)之外,我还能做些什么来加快我的查询性能?

VMA*_*Atm 11

我想你问的是错误的问题.

首先 - 为什么在本地机器上一次需要这么多文章?你想和他们做什么?

我为什么这么问?我认为这些数据将被转移到某个地方.只有在这个时候你应该测量传输数据的时间.

即使在这种情况下,我也想向你提出建议:

您的应用程序当时不应该选择500万条记录.尝试拆分查询,并部分获取数据.

更新:

正如你所说的那样进行测试,我建议你:

  1. *从查询中删除- SQL Server花费一些时间来解决此问题.
  2. 尝试将数据存储到临时数据存储中.尝试使用VIEW或临时表为此.
  3. 尝试在您的服务器上使用一些缓存计划

但我仍然不明白 - 如果您的应用程序不会使用此类查询,为什么还需要此类测试?仅测试测试是花费的时间.

  • 我想补充一点,优化这些测试中发现的问题,我认为这是运行它们的原因,会浪费更多的时间。 (2认同)
  • 我知道这是一篇旧文章,但是这个人可能一直在练习并熟悉查询调优。 (2认同)