UPDATE work.全量0520 JOIN 全量触达集.装移维 ON work.全量0520.宽带账号 = 全量触达集.装移维.宽带账号 SET work.全量0520.装维最近评价时间=全量触达集.装移维.受理时间, work.全量0520.装维最近评价=全量触达集.装移维.回复满意度 where work.全量0520.宽带账号=全量触达集.装移维.宽带账号 and 全量触达集.装移维.受理时间=( select max(全量触达集.装移维.受理时间) from 全量触达集.装移维 where 宽带账号=work.全量0520.宽带账号);怎么让这个语句更快,如何优化这个语句
时间: 2023-09-20 10:10:01 浏览: 47
SQL Server UPDATE语句的用法详解
这个 SQL 语句可以进行如下优化:
1. 建立索引:对于表 `work.全量0520` 和 `全量触达集.装移维` 中涉及到的字段建立索引,可以加快查询速度。
2. 子查询优化:将子查询中的 `max` 函数改为 `join` 操作,这样可以减少查询次数,提高效率。
3. 避免重复计算:将 `全量触达集.装移维.宽带账号` 提取出来,避免重复计算,提高效率。
优化后的 SQL 语句如下:
```sql
UPDATE work.全量0520 AS a
JOIN (
SELECT 宽带账号, MAX(受理时间) AS 最近评价时间, 回复满意度 AS 装维最近评价
FROM 全量触达集.装移维
GROUP BY 宽带账号
) AS b
ON a.宽带账号 = b.宽带账号
SET a.装维最近评价时间 = b.最近评价时间, a.装维最近评价 = b.装维最近评价;
```
这样优化后,可以大大提高 SQL 语句的执行效率,减少查询时间。
阅读全文