为什么“OR 运算”或 OR 条件不可控制?

2024-04-05

在文献中,我读到在 WHERE 子句中使用 OR 条件或运算符会生成一个语句non-sargable。我不确定为什么或如何这是真的。任何帮助,将不胜感激。


权威优化书籍作者给出了答案SQL Server 查询性能调优, https://rads.stackoverflow.com/amzn/click/com/1430267437格兰特·弗里奇.所以事情是这样的:

“OR 语句现在比以前优化得多。但是如果你想一想,如果我有一个索引并且我想匹配等于 A 或 Z 的值,引擎必须进行多次比较,而不仅仅是简单地进行比较一。可控制条件都会导致直接的点查找或范围查找。因此 = A 将遍历一棵树并从该值的索引中检索一行或一组行。但是如果它是 A 或 R ,它无法检索范围,它必须执行其他类型的工作。有时您会看到这些通过 JOIN 操作作为两次查找完成。这很好。但其他时候您会看到其他过滤运算符或扫描。所以,它是不​​可监视的。” (再次强调,功劳归作者所有)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么“OR 运算”或 OR 条件不可控制? 的相关文章

随机推荐

  • 将坐标(地理位置)存储在数组中以计算距离

    我和我的搭档正在为我们的学校论文开发一个练习网络应用程序 我们正在尝试使用地理定位 API 的 watchposition 函数获取跑步者的位置并在锻炼期间跟踪他 跑步者可以在屏幕上查看他当前的距离 这是我们被卡住的点 我们只能计算起点和终
  • 在 Kafka 生产者上启用幂等性是否会降低吞吐量

    我有卡夫卡制作人启用幂等性 没有启用一次语义或事务 在休息端点调用中 我启用它的原因是因为我不希望卡夫卡重试导致任何重复 我担心以下几点 幂等性会减慢我的端点速度吗 这个端点需要非常快 我读了 kafka api 文档 启用幂等性将使重试无
  • 屏幕顶部的自定义 Toast

    请先阅读问题 然后再使用打印 Toast 的标准例程进行回答 我想在屏幕的左上角显示一个自定义 Toast 我使用以下代码来创建 Toast Toast mFixedToast new Toast getApplicationContext
  • PHP 脚本版本检查/通知

    如何根据在线文件检查脚本的版本以查看它是否是最新版本 为了澄清起见 我说的是我编写的脚本 而不是 PHP 的版本 我想采用一种方式让最终用户知道我何时更新了脚本 指定第二个 更简单 解决方案phjr https stackoverflow
  • Java动态澄清

    我在术语下看到了这段摘录Java 流行语在读一本关于Java的书时我不明白 Dynamic Java 程序带有大量的运行时类型信息 用于在运行时验证和解析对对象的访问 这使得以安全且方便的方式动态链接代码成为可能 这对于 Java 环境的稳
  • 每个页面有一个 CSS 文件还是单独的 CSS 文件?

    当我构建页面时 我想要为每个页面使用单独的样式表还是为整个网站使用一个大型样式表 出于加载目的 单个文件不是更好的做法吗 因为加载时的总 CSS 会更少 使用单个文件 CSS 文件会被缓存 因此减少了为每个访问的新页面下载新文件的需要 为了
  • CIDetector跟踪ID从不存在

    我正在 OSX Mavericks 上编写一些人脸检测代码 并尝试利用 CIDetector 提供的跨多个静止图像功能的新 截至 10 8 人脸跟踪 我的基本面部检测工作正常 如下所示 void captureOutput AVCaptur
  • 如何在面板数据中为不同年份创建单独的直方图?

    我有一个数据框报纸 年 其中包含每年一组报纸的发行量 CIRC 我想看看这些数字的分布如何随时间变化 所以我想为这些不同的年份创建多个单独的直方图 我已经尝试过以下方法 ggplot newspaper yearly aes x CIRC
  • YouTube URL 方案 tvOS

    我正在尝试使用 URL 方案或 YouTube com 域从我的应用程序打开 YouTube 的应用程序 从而直接在 iOS 设备上打开 YouTube 的应用程序 这是我尝试过的代码 UIApplication sharedApplica
  • 如何访问shinyapps.io上应用程序的R+Shiny代码?

    我发现了一个设计非常好的闪亮应用程序闪亮应用程序io https wuli shinyapps io QuoiR 网站 但我不知道如何访问它R代码或说出github其代码目录 我发现如果我们能够访问它的代码 这非常有启发性 无论如何 在最坏
  • SQLAlchemy 布尔值与 BOOLEAN 的比较

    我理解了BOOLEAN覆盖 visit name class BOOLEAN Boolean visit name BOOLEAN 控制调度程序选择的访问者方法 def compiler dispatch self visitor kw v
  • Java 编写单元测试,用于当用户在控制台中键入 quit 时退出程序

    我发现很难为这种方法编写单元测试 当用户键入退出命令时 它基本上会退出程序 系统退出类 public class SystemExit public void exit int status System exit status 我的静态方
  • 如何制作圆形按钮?

    我想制作一个圆形按钮 但我不知道该怎么做 我可以制作带有圆角的按钮 但是我怎样才能制作圆形 这是不一样的 请问一下 安卓上可以吗 谢谢 创建一个名为的 xml 文件roundedbutton xml在可绘制文件夹中
  • 为什么 cv2.rectangle 有时返回 np.ndarray,而有时返回 cv2.UMat

    我目前正在研究一些图像的可视化 并发现 opencv 的 cv2 rectangle 的奇怪行为 当输入图像是 np ndarray 时 例如 arr cv2 rectangle 返回一个 np ndarray 并且 arr 是用矩形绘制的
  • 如何禁用默认消息:“您的请求已成功处理”?

    当在我的 portlet 中执行添加 更新操作时 如何为我的插件 portlet 禁用此默认消息 您的请求已成功处理 另外我想为我的自定义配置页面禁用此功能 configuration jsp 这是当我们单击每个 Portlet 右上角出现
  • 这个“你好世界!”是怎么做到的?程序工作?

    int main void return yes no main printf hello world n 0 outputs hello world 但它实际上是如何工作的呢 确实有两件事 函数指针不像其他指针那样取消引用 main ma
  • Powershell - 排除 Get-ChildItem 中的文件夹

    如何排除文件夹 现在我对文件夹名称进行硬编码 但我希望它更加灵活 foreach file in Get ChildItem fileDirectory Exclude folderA folderb 如何排除文件夹 如果您指的是所有文件夹
  • libpcap 在它们下面使用原始套接字吗?

    我对原始套接字和 libcap 的使用感到有点困惑 任何人都可以简单地指出使用两者的优点 我读了几个链接 但是 它让我感到困惑 libpcap 在不同的操作系统上使用不同的机制 在 Linux 上 它使用 PF PACKET 原始套接字或熟
  • 如何根据 Mongodb 中的键删除重复项?

    我在 MongoDB 中有一个集合 其中大约有 约 300 万条记录 我的样本记录看起来像 id ObjectId 50731xxxxxxxxxxxxxxxxxxxx source references id ObjectId 5045xx
  • 为什么“OR 运算”或 OR 条件不可控制?

    在文献中 我读到在 WHERE 子句中使用 OR 条件或运算符会生成一个语句non sargable 我不确定为什么或如何这是真的 任何帮助 将不胜感激 权威优化书籍作者给出了答案SQL Server 查询性能调优 https rads s