当前位置: 首页 > 面试题库 >

数据库功能VS案例陈述

赵嘉悦
2023-03-14
问题内容

昨天我们遇到了一个场景,其中必须获取a的类型,db field并且在此基础上我们必须编写该字段的描述。喜欢

Select ( Case DB_Type When 'I' Then 'Intermediate'
                      When 'P' Then 'Pending'
                      Else 'Basic'
         End)
From DB_table

我建议编写一个db函数而不是case语句,因为那样会更可重用。喜欢

Select dbo.GetTypeName(DB_Type) 
from DB_table

有趣的是,使用数据库的功能将是一个说我们的开发人员的 效率低下database functionsCase statement。我在互联网上搜索了答案,这在效率方面是更好的方法,但是不幸的是,我没有发现任何可以满足的答案。请您的想法启发我,哪种方法更好?


问题答案:

UDF function is always slower than case statements

概括 :

当使用用户定义的函数时会付出巨大的性能损失。当查询将UDF应用于大量的行(通常为1000或更多)时,该损失表现为查询执行时间较差。因为SQL
Server数据库引擎必须创建自己的内部游标(如处理),所以会产生罚款。它必须在每一行上调用每个UDF。如果在WHERE子句中使用了UDF,则这可能是过滤行的一部分。如果在选择列表中使用了UDF,则在创建查询结果以传递到查询处理的下一个阶段时会发生这种情况。逐行处理最大程度地降低了SQL
Server的速度。



 类似资料:
  • 问题内容: MySQL中的Case表达式和Case语句有什么区别?什么时候可以使用它们?与另一种相比,使用它们有什么好处? Case Statement语法: 案例表达语法: 这些看起来几乎相同,但是对Case Statements的最初描述是: 那么,在存储程序中使用一个而不在普通查询中使用它的显着区别是吗?我在正在使用的查询中尝试了此操作,但失败了-sqlfiddle。如果是这种情况,为什么不

  • 问题内容: 更有效的方法是- 在sql中使用case语句处理,或在代码中使用if语句处理相同的数据。我问是因为我的同事有一个很大的查询,其中包含许多案例陈述。我建议她通过编写case语句来减轻数据库的压力。我发现它更有效…但是为什么呢? 问题答案: 这里没有一个更基本的问题:这些语句实际上在做什么? 一分钟忘了表演。如果仅用于转换查询的最终输出,并且实际上可以用或在ASP中替换相同的功能,则可能意

  • 问题内容: 我有一个数据库表’ tbl_transaction ‘,其定义如下: 我想生成两列:和。 是否可以仅使用SQL查询有条件地填充列,以使输出显示在正确的列中,具体取决于它是费用项目还是收入项目? 例如: 我正在使用MySQL作为数据库。我正在尝试使用CASE语句来完成此任务。 干杯! 问题答案: 是的,像这样: 正如其他答案所指出的那样,MySQL还具有使用较少冗长语法的功能。我通常尝试

  • 本文向大家介绍jdbc连接oracle数据库功能示例,包括了jdbc连接oracle数据库功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jdbc链接oracle数据库功能。分享给大家供大家参考,具体如下: 希望本文所述对大家java程序设计有所帮助。

  • 问题内容: 这个问题已经在这里有了答案 : 10年前关闭。 可能的重复: “ else if”是否比“ switch()case”更快? Java中if / else与switch语句的相对性能差异是什么? 我知道case语句可以用跳转表实现。这是否使它们比if语句更有效? 只是应该避免这种微观优化吗? 问题答案: 我认为主要是尽可能清楚地编写代码。 这样的微优化不应该成为重点。 例如,如果您有这

  • 问题内容: 如该问题所述,我试图制定一个查询,该查询在列结果中包含一个case语句,然后我想将该列包含在查询的group by语句中。举一个具体的例子,这几乎是我查询的样子: 在来到这里之前,我检查了一些网站,包括该网站,以尝试解决我的问题。我尝试在链接的网页中显示“ like”之后添加另一个别名,但是没有运气。我继续收到的错误消息如下: 是否还有其他人遇到我所面临的问题,并且能够在声明的结果上使