SQL Server 不使用索引将日期时间与非空进行比较

2024-05-14

我有一个与其他任何表都不相关的简单表。它有一个非 PK 列,它是一个日期。我已经为该列创建了一个非聚集索引。如果我提出这个查询:

select * from table where datecolumn is not null

但如果我删除 not,这样: select * from table where datecolum is null

非空值比空值多得多。

我是不是忘记了什么?我可以在这里使用过滤索引吗?

提前致谢。


这个是正常的。除非谓词的选择性足以保证它,否则它不会使用索引。

听起来绝大多数记录都不为 NULL,因此不必通过非聚集索引查找这些记录,而是必须进行大量书签查找和随机 I/O 来检索其余列以返回,这样更快、更高效只需扫描整个聚集索引。

您可以使用FORCESEEK强迫你做出你所说的你想要的行为。您可能会发现与聚集索引扫描相比,所花费的时间和 I/O 统计数据飞速增长。

SET STATISTICS IO ON

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

SQL Server 不使用索引将日期时间与非空进行比较 的相关文章

  • SQL Server 2008中与其他列的排序树

    我有一个使用它实现树的表层次结构ID column 样本数据 People Girls 1 Zoey 1 1 Kate 1 2 Monica 1 3 Boys 2 Mark 2 1 David 2 2 这是使用的顺序层次结构ID列作为排序列
  • 异常的成本有多高[重复]

    这个问题在这里已经有答案了 你知道java中异常抛出和处理的代价有多大吗 我们就团队中异常的实际成本进行了多次讨论 有些人尽可能避免使用异常 有些人则认为使用异常会导致性能损失被高估了 今天我在我们的软件中发现了以下代码 private v
  • 将 pandas 多索引折叠为单个索引

    我有一个多索引的 Pandas 数据框 如下所示 如何将三层索引合并为一层索引 也就是说 我想将 1987 1 2 转换为 pd datetime 1987 1 2 我更喜欢使用 df index map 的矢量化方法 以下是可以创建数据框
  • 查看与存储过程连接的结果

    我在 SQL Server 中有一个由应用程序使用的现有视图 我需要加入从存储过程返回的表 存储过程会执行很多操作 例如在返回结果之前插入多个 temp 表 我尝试将存储过程转换为表值函数 但是插入 TVF 内的临时表会导致编译错误 我还有
  • 覆盖乔达一周的第一天?

    是否有可能覆盖乔达弱的第一天sunday 因为 Joda 使用Monday作为一周的第一天 如果有办法的话 谁能解释一下 我在 SOF 中提到了以下主题 乔达时间 一周的第一天 https stackoverflow com questio
  • 性能方面插值(直接插入字符串)VS串联[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何将位对从 uint64_t 解压缩到 __m256i?

    考虑uint64 t其中每连续 2 位都是一个数字 b00 for 0 b01 for 1 b11 for 1 and b10未使用 永远不会发生 假设没有对其进行处理 如何解压这样的uint64 t into m256i以便原始数字中的位
  • 将 Pandas 系列转换为 DataFrame 中的日期时间

    我有一个 Pandas DataFrame 如下 ReviewID ID Type TimeReviewed 205 76032930 51936827 ReportID 2015 01 15 00 05 27 513000 232 760
  • 原始数组的现代 for 循环

    原始数组上的 for 循环之间有性能差异吗 Assume double doubleArray new double 300000 for double var doubleArray someComplexCalculation var
  • 最大化数组中成对距离的总和

    想象一个清单 e1 e2 en 和一个函数f e1 e2 gt number返回常数时间内任意两个元素之间的距离 f e e 0 e1 e2 gt f e1 e2 gt 0 f e1 e2 lt f e1 e3 f e3 e2 目标是排列列
  • 为什么Asp.net MVC4不能使用SQL Server Session状态存储的cookieless

    全部 这是我在 Asp net MVC4 应用程序中的 Web 配置 我发现如果我将 cookieless 设置为 false 一切都会正常 但如果我不想使用 cookie 那么应用程序就无法工作 当我调试应用程序时 我发现控制器无法接收来
  • 我如何使用 F() 对象通过 Django ORM 来执行此操作?

    我遇到过这样的模型 class Task models Model timespan models IntegerField null True blank True class Todo models Model limitdate mo
  • 表值函数降低了我的查询性能

    今天我在尝试让查询按照我期望的方式执行时经历了一段可怕的时光 我不得不对昨天查询中的表值函数进行轻微更改 该更改对查询产生了巨大的性能影响 在评估执行计划并查看统计 IO 和时间后 我发现因为我更改了函数以返回表变量而不仅仅是结果集 所以它
  • 带逗号和句点的 SQL Server 2005 货币格式

    有没有办法在 SQL Server 2005 中转换货币字段以对其进行格式化 例如 该字段包含 99966 00 我们希望以这种格式返回 99 966 00 convert varchar cast SalesProducts Price
  • HQL 中的日期比较(不带时间戳)

    我必须比较 hibernate hql 查询中的两个日期 我在 java bean 中使用 java util Date 并在 mysql 数据库中使用时间戳作为数据类型 select t from Task t where t modif
  • 将 SQL Server 2008 查询分成多个批次

    我正在尝试准备一些数据供第三方删除 不幸的是他们只能批量处理 2000 条记录的数据 我有 100k 条记录 可能需要多次分割和导出这些数据 所以我想以某种方式自动化该过程 有没有一种相当简单的方法可以使用 SQL Server 2008
  • 经常访问 NSUserDefaults

    在我的应用程序的逻辑处理过程中 我需要频繁访问用户首选项 并多次访问 10 15 次 以确定需要处理什么以及如何处理 也许这个问题不是关于性能的问题 而是关于正确执行的问题 目前我正在做一个 NSUserDefaults standardU
  • 整数与双精度算术性能?

    我正在编写一个 C 类来使用整数执行 2D 可分离卷积 以获得比双对应更好的性能 问题是我没有获得真正的性能提升 这是 X 过滤器代码 对于 int 和 double 情况都有效 foreach pixel int value 0 for
  • 为什么 foreach 这么慢?

    PHPBench com http www phpbench com 在每个页面加载上运行快速基准测试脚本 在 foreach 测试中 当我加载它时 foreach 的运行时间是第三个示例的 4 到 10 倍 为什么本机语言构造明显比执行逻
  • python生成器太慢,无法使用它。我为什么要使用它?什么时候?

    最近我收到一个问题 哪一个是最快的 iterator list comprehension iter list comprehension and generator 然后编写简单的代码如下 n 1000000 iter a iter ra

随机推荐