在Ms sql中排序的最快方法

时间:2016-06-30 06:29:10

标签: sql sql-server performance

我有两个大型数据库(每个270万个条目)需要合并和排序。 合并表的排序在按顺序完成时会消耗大量时间。 有没有其他方法可以更快地对此合并表进行排序? 我已经尝试过索引来加速执行,但我正在寻找更快的速度 如果有人可以提供帮助。谢谢

2 个答案:

答案 0 :(得分:2)

  1. 在排序列Array.Resize(ref _with30.OZCurveData, _with30.NumOzCurves - 1); 上设置了聚簇索引,以预先排序每个表中的数据。
  2. 使用[date]上的主键为查询创建索引视图。这将有效地创建由RDBMS引擎自动维护的合并表。
  3. 为tempdb等添加更多RAM,核心,更快的SSD。
  4. 关于方法1的评论

    更新。基于此查询:

    ([date], id)

    Select * From table1 Inner Join table2 On table1.id=table2.id Order By table1.[date] 主键table2不需要任何其他索引。

    id将受益于

    table1

    这将有效地创建按日期排序的CREATE CLUSTERED INDEX idx_table1_date ON table1 ([date]) INCLUDE ( ...all other fields except id which is included anyway... ); --... so that all the select data is available from the index without another lookup by PK 副本。结果查询将扫描table1并按主键查找idx_table1_date

答案 1 :(得分:0)

这在很大程度上取决于您的实际列,但您应该尝试针对此查询进一步优化索引。正确放置索引应该加快速度,但你必须意识到它仍然是一堆数据,排序是SQL Server的一个难点。

您可能需要查看this link以获取一些提示。