![]() |
1
4
这是正常现象。它不会使用索引,除非谓词有足够的选择性来保证它。 听起来绝大多数记录都不是空的,因此不必通过非聚集索引来查找这些记录,而是必须执行大量的书签查找和随机I/O来检索其余的列以返回,只需扫描整个聚集索引就可以更快、更高效。
你可以用
|
![]() |
2
1
理解你的问题的关键可能在这句话中: 没有空值比空值多得多 . SQL服务器 (以及其他关系数据库)使用统计信息来确定它将使用什么查询计划。统计信息可能告诉数据库有很多日期为非空的行。所以也许 SQL服务器 认为使用一个索引是不值得的, 全表扫描 对于这个特定的查询,更好的计划是 不为空 条件。 我想提两件事:
|
![]() |
saber · MySql查询没有结果 3 年前 |
![]() |
pigfox · Mysql空表联接失败 7 年前 |
![]() |
Jaa Zaib · 返回空值的大小写表达式 7 年前 |
![]() |
Robert Vogelezang · 为什么null未写入输出窗口? 7 年前 |
![]() |
l. schwarz · sql长度(null) 7 年前 |
![]() |
ÇAÄrı Keskin · SQL-删除(消除)没有数据的列 7 年前 |
|
Dorkymon · 使用系统在输出处获取null。出来打印F 7 年前 |