【问题标题】:Recent expensive query最近昂贵的查询
【发布时间】:2017-12-23 04:55:49
【问题描述】:

在检查活动监视器时,我发现一些昂贵的查询和执行计划附在此处execution plan

在检查时显示索引搜索是 66% 这是什么意思?它是如何变成昂贵的查询的? 有人请帮忙

【问题讨论】:

  • 查询运行需要多长时间?
  • 您使用的是哪个 dbms?
  • MS SQL SERVER 2012....
  • 得到实际的执行计划而不是估计的。以及它 66% 的查询,它可能不是一个“昂贵”的查询,这就是所有工作所在。如果您在 VehicleID 上进行过滤,那么您会期望它
  • 您的查询是什么?

标签: sql sql-server indexing sql-server-2012


【解决方案1】:

您正在使用 2 个子查询来获取更美观的结果,您可以将子查询替换为连接或临时表。

您还可以索引 VehicleSchedules 表的 SchedStartTime 和行程表的 vehicleScheduleid 列。

注意:索引会影响您的 DML 查询。

select top 1 @v_CancelScheduleid= VehicleScheduleid 
from VehicleSchedules WITH (NOLOCK) 
where vehicleid=@v_VehicleId 
and vehicleScheduleid not in (select isnull(vehicleScheduleid,0) from trip WITH (NOLOCK)) and SchedStartTime<(select SchedStartTime from VehicleSchedules WITH (NOLOCK) where vehicleScheduleid=@ScheduleId) order by SchedStartTime desc

【讨论】:

    猜你喜欢
    • 2010-09-20
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    • 2018-08-07
    • 2023-03-19
    • 2016-07-10
    • 1970-01-01
    相关资源
    最近更新 更多