大型表上的SQL Server非群集索引创建超时(4000万行)

时间:2015-12-02 16:05:03

标签: sql sql-server database timeout non-clustered-index

直到最近,我一直在创建索引(< 20s)并在包含表格的数据库上相对快速地运行大量查询(< 10s)每个最多有大约1000万到1200万行。

我最新的数据库中有每个表最多有4000万行的表,我的索引创建和查询都受到了极大的影响。

  • 索引创建超时(即使使用我的工具>选项>设计师>表格和数据库设计人员>交易超时时间提高到120秒)
  • 我花了10秒钟的查询现在在SQL Server Management Studio中花了40-50秒(这是合乎逻辑的),但是:
    • 那些使用库(RODBC)和sqlQuery()通过R每次花费5-10秒的相同查询现在大约需要4-5分钟。

我正在使用最近升级到SQL Server Management Studio Enterprise的i7(但问题是在升级之前发生的),我需要这些查询至少以半最佳状态运行。

每个查询提取大约200,000个值,但需要遍历整个表;因此,非聚集索引似乎有意义,但索引创建是超时的。

我已经做了什么?

  • 将事务超时从30秒提升到120秒。
  • 将索引创建内存(服务器属性>内存)从0增加到33000。
  • 每个查询的最小内存从1024增加到3500.
  • 创建了一个填充表格的缩小版本(re:400万行):
  • 查询时间最佳。 (检索40,000行(10%),~2秒)
  • 索引创建是最佳的。 (小于10秒)

我不确定瓶颈在哪里,有什么想法吗?

0 个答案:

没有答案