白盒测试之静态检查--sql检测器检查存在is null、is not null的语句

在写sql语句的时候,我们知道字段可以用is null、is not null进行判断条件。 但是往往会忽略掉索引,引起全表扫描。 这个检测器就是检查java代码中存在的sql语句,同时对这些sql语句进行分析。 判断是否违反了优化的规则。 sql检测器是一系列的检测器,概要的设计之前我有篇文章 “白盒测试之静态检查--sql检测器设计”有介绍。 eclipse上运行结果: 1.1.1 PERFORMANCE_DB_SQL_NULL sql语句使用了is null、is not null 1.1.1.1 版本 Verson:1.2.0 1.1.1.2 作者 Author: River.liu Date : 2010.4.10 Email : liuhanhong@yahoo.com.cn 1.1.1.3 原理 1、sql语句使用了is null、is not null 在建立索引的数据列中使用is null、is not null值,该列的索引将会忽略。 已验证数据库:oracle 2、例如 String sql1="select last_name from a WHERE last_name IS NULL"; String sql2="select last_name from a WHERE last_name IS not NULL"; 1.1.1.4 开发原理 用正则表达式来匹配 1、必须为sql语句 匹配规则: .*select.*from.*where.* 2、满足下面任何一个条件 1)包含is null 匹配规则:.*is*null.* 2)包含is not null 匹配规则:.*is*not*null.* 1.1.1.5 配置说明 配置文件pluginConfig.properties在插件的jar包里面,直接修改里面的配置项目,再放回jar包就可以了。 1.1.1.5.1 isOpen 是否启用该检测器。 1.1.1.6 误报说明 1、可能把类似sql的字符串的语句误判为sql语句 2、用户根据需要确定是否进行sql优化 博客地址:http://www.51testing.com/?uid-294525-action-viewspace-itemid-212434

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值