Self outer Join替换为从Temp表插入物理表

时间:2018-04-08 05:29:55

标签: sql-server database-performance

如何提高此查询的效果?

INSERT INTO ABC(TRACKING_ID,GROUP_ID,ETL_NUM,ENTITY_ID,UNI_ID,DOS_TO)
SELECT A.TID,A.TID2,A.ETL_NUM,A.ENTITY_ID,A.UNI_ID,A.DOS_TO
FROM #TEMP A(NOLOCK)
LEFT OUTER JOIN #TEMP B(NOLOCK) ON A.TID=B.TID
AND ETL_NUM<B.ETL_NUM
WHERE B.TID IS NULL

我有1100万条记录。处理此查询需要9个小时。为了调整此查询,我在Temp表ETL_NUM上添加了索引。但它并没有提高性能。

我没有DB的管理员权限。

1 个答案:

答案 0 :(得分:0)

你能说得更清楚吗?

您是否要将11百万条记录插入您没有管理权限的数据库中?

您想手动插入所有数据吗?所以,你认为大约需要9个小时。或者您只记下一个查询需要9小时?

好吧,如果你在谈论前者,那取决于你拥有数据的方式。如果您拥有JSON或样式表或此类文件中的数据。它可以更容易。如果是后者,您可能需要询问管理员并进行讨论。

相关问题