SQL优化
ORACLE SQL优化
kiwixing
The story begins at the moment
展开
-
SQL优化 where条件单列is null优化改写
4.改写where语句is null为nvl ,执行结果一致。3.创建普通索引测试,无法使用到索引,索引中不存放空值。5.创建nvl 函数索引,逻辑读降低为7。2.测试全表扫描逻辑读1237。1.创建测试表及测试数据。原创 2024-10-07 09:52:33 · 121 阅读 · 0 评论 -
SQL优化 where谓词条件is null优化
OBJECT_NAME字段索引范围范围,回表过滤SUBOBJECT_NAME is null,逻辑读7。注意,null字段在索引第一列,也能使用到索引,但需要索引扫描后走filter,null不参与排序。3.创建复合索引,包含SUBOBJECT_NAME is null条件字段。1.创建测试表及谓词条件中包含is null模拟语句。索引范围扫描,无需回表过滤,逻辑读4。3.创建等值谓词条件的单列索引。2.全表扫描逻辑读1237。原创 2024-10-06 11:32:22 · 170 阅读 · 0 评论 -
SQL优化 where谓词条件OR优化
4.OR对应两列同时创建索引,可以使用到两个索引,并CONCATENATION,逻辑读降为7。1.测试表,及测试语句where条件中OR对应两个字段选择度很高。3.OR其中一列创建索引,无法使用索引,全表扫描。2.没有索引情况下,全表扫描逻辑读1238。原创 2024-10-06 08:30:00 · 61 阅读 · 0 评论 -
dba_free_space 视图查询慢 X$KTFBUE
1.监控程序 dba_free_space 视图查询慢,访问基表X$KTFBUE时间较长,且多为单块读db file sequential read。4.从执行计划看,不是基表统计信息不准,在执行一次对X$KTFBUE基表进行全表扫描特别慢,那说明表中存放记录太多。2.执行计划看时间都消耗在35步FIXED TABLE FULL X$KTFBUE,访问9百万数据,且都是单块读。回收站中记录150万,占用1TB空间,造成碎片较多,分区较多。5.清理回收站,数据量较大可能执行时间较长,可分用户执行。原创 2024-10-05 20:55:43 · 191 阅读 · 0 评论