测试验证一下字段有空值的时候,是否字段+常量的方式可优化

测试验证一下字段有空值的时候,是否字段+常量的方式可优化-1
解析:
索引中不保存索引列全为空的记录,所以,仅仅在C1列上创建索引是没有作用的。创建由(C1,‘1’)构建的复合索引,由于存在常量‘1’,所以,无论C1列的值是否为空,其均可出现在索引中,并且该索引会被该SQL所使用。另外几种方法,虽然也可以达到类似避免全表扫的,使用相对高效的索引的目的,但要么需要改写SQL,要么需要修改表中的记录值,要么索引的体积较大,且还存在其它列在其中,当该其它列更新时,该索引也需要同步维护。代价均较“创建由(C1,‘1’)构建的复合索引”的方法更大。

以下测试验证一下字段有空值的时候,是否字段+常量的方式可优化?

测试表100万记录,其中有100条空值。

在创建C1,'0’复合索引后,确认可以走索引,速度提升5-7倍。

注意查看实际的执行计划,使用SQL:

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL, NULL, 'ALLSTATS LAST'));