以下查询的持续时间约为8分钟。我正在寻找两个日期之间的平均工作日,并使用两个数据库和表,其中一个是日历表。是否有更有效的方法使下一个查询的持续时间更快?
select avg(datediff(e.column1, e.column2)) as 'diff'
from DB1 e
inner join db2.table1 pd on e.column3 = pd.column1
where pd.calendar_day_in_week not in (1,7)
答案 0 :(得分:0)
e.column3和pd.column1是否已编入索引?我认为是使查询变慢的连接。试试这个
select avg(datediff(e.column1, e.column2)) as 'diff'
from DB1 e
inner join (SELECT column1 FROM db2.table1 WHERE calendar_day_in_week not in (1,7)) AS pd on e.column3 = pd.column1
首先执行table1上的where,以便为连接获得更小的块表。