我有两个大型数据库(每个270万个条目)需要合并和排序。 合并表的排序在按顺序完成时会消耗大量时间。 有没有其他方法可以更快地对此合并表进行排序? 我已经尝试过索引来加速执行,但我正在寻找更快的速度 如果有人可以提供帮助。谢谢
答案 0 :(得分:2)
Array.Resize(ref _with30.OZCurveData, _with30.NumOzCurves - 1);
上设置了聚簇索引,以预先排序每个表中的数据。[date]
上的主键为查询创建索引视图。这将有效地创建由RDBMS引擎自动维护的合并表。更新。基于此查询:
([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以获取一些提示。