【问题标题】:How to optimise this SQL function?如何优化这个 SQL 函数?
【发布时间】:2016-07-16 14:57:25
【问题描述】:
(@PaymentId int) 
returns int
as
begin
    Declare @viewedCount int

    Select @viewedCount = Count(OtSrno) 
    From OtTendersViewDetail 
    Where OTPaymentId = @PaymentId 
      And OTPaymentId is not null

    return (@viewedCount)
end

【问题讨论】:

  • 优化?瓶颈是什么?
  • 在 OTPaymentId 上添加索引并计算它而不是 OtSrno
  • 如何在 OTPaymentId 上添加索引并计算它而不是 OtSrno
  • 投票结束,因为没有问题陈述,没有架构,没有 SQL Fiddle,没有时间信息,没有所需的优化要求,也没有任何先前努力的证据。标签垃圾邮件也不是很好 - 您使用的是哪些版本的 SQL Server

标签: sql sql-server sql-server-2008 sql-server-2012 sql-server-2014


【解决方案1】:

优化通常是你为复杂的操作做的事情——这个来自纯 SQL 的优化是最好的。

您可以做的是“重新编译”或“针对未知进行优化”以避免参数嗅探——这意味着重用查询计划。

您还可以做的(更好的)是检查 OTPaymentId 是否为 null 以及 2 个不同的选择语句之间的 if/else。同样,这是关于查询计划重用/陷入糟糕的查询计划。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 2019-04-06
    • 2015-01-25
    相关资源
    最近更新 更多