sql-server - SQL 存储过程的 select 语句中标量函数的备用选项
问题描述
我有一个存储过程来从我的数据库中获取客户列表。在那个 SP 中,我在选择查询中调用了 2 个标量函数,这严重影响了性能。
标量函数有多个 if 操作来检查多个案例并获取客户许可证信息,因此在内联中使用此查询更加复杂。
我知道在 select 语句中使用标量函数每次都会调用一些可用的行。
我怀疑避免这种性能影响的最佳替代方法是什么。
提前致谢。
解决方案
该函数减慢您的 SP 的部分原因是,在创建执行计划时,没有考虑函数的内部结构。所以首先,使代码成为内联代码会提高性能。但我同意它可能非常难看,应该避免。
您可能应该使用临时表预先准备数据,但是如果没有看到代码就很难说
推荐阅读
- python - 在 OpenNMT-py 中查找细胞状态
- java - 如何从 Object 类型的 ArrayList 在 JavaFX 中创建 ListView?
- google-oauth - 让 Google OAuth 返回 access_token 和 refresh_token 的完整且正确的指示
- php - 从 select 语句中查找重叠时间
- javascript - 如何获取 a 内部的值?
- sql - 将范围 [ab] 的列拆分为 (b - a + 1) 行
- ios - 如何检查 iOS/iPadOS 中是否启用了深色模式?
- python - VTK vtkDataSet 到 3D numpy 数组并返回
- c# - 如何在由 ASP.NET 中的列表填充的 gridview 中添加页脚行
- postman - 通过 REST 工具测试 WebAuthn?