我有一个表,唯一一次我要选择它或做任何反对它的事情是找到特定日期列为空的所有行。从那里开始,我对其进行操作并更新该列,并且可能我再也不会访问该行,除了审计目的。
那么,是否有最佳实践来确保更快地找到我的列 SentDate 为空的行?
最佳答案
当然,要优化表以查找 NULL,您需要使用索引。 NULL 被索引并且像任何其他值一样可查找:
create table foo (a int null, b varchar(100) null);
create clustered index cdxFoo on foo(a);
go
insert into foo (a,b) select Number, 'not null' from master..spt_values
insert into foo (a,b) values (null, 'null')
select * from foo where a is null
select 的查询计划清楚地表明,对键“NULL”的查找用于定位该行。
关于sql-server - 我应该如何索引表以优化以查找空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2419996/