【发布时间】:2015-07-20 10:57:47
【问题描述】:
我有一个在 5.4 亿条记录表上应用内部联接的查询。此查询耗时超过 9 小时。
我想优化查询,我该如何处理。
查询是-
Delete top(1000)
FROM table1 fact
INNER JOIN
table2 uu
ON uu.User1 = fact.User1
Where uu.Is_Archived$ = 'true'
and fact.Snapshot_Date$Snapshot_Date$ > uu.User_End_Date$
连接中使用的列是整数,并且两列具有相同的数据类型。并且有很多无效的记录数。
任何帮助都会很棒。谢谢!!!
【问题讨论】:
-
在优化查询时,有关表结构的信息非常重要。
-
您的查询真的有效吗?我认为在
delete之后需要from table name。 -
连接中使用的列是整数,并且两列具有相同的数据类型。并且有很多无效的记录数。
标签: sql sql-server database sql-server-2008 query-optimization