【发布时间】:2013-08-21 18:11:53
【问题描述】:
我有一个类似的查询:
select row_number() over(order by m_time desc) as row, m.m_id, m_time, m_log_id
(case when exists(select 1 from t_approved_phonenumber where phone_number = m.c_phone_number) then 1 else 0 end) as approved,
(case when exists(select 1 from t_log log where log.c_id < m.m_log_id and log.phone_number = m.phone_number) then 'N' else 'Y' end) as is_first_time
from t_message m
所有表 t_approved_phonenumber、t_message 和 t_log 都有很多记录。并且所有的 ID 都是主键,phone_number 列有索引。有时我的查询很慢。有什么办法可以加快速度吗?
谢谢,
【问题讨论】:
-
您忘记提及运行此查询的 SQL 产品。另外,在询问优化时,请考虑添加当前版本查询的查询计划。
标签: sql optimization case exists