51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2519|回复: 5
打印 上一主题 下一主题

[原创] 不良 SQL导致系统性能低下的一个实际案例

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-3-1 00:20:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
从数据库中抓出的 SQL发现:

1.   很多页面过度的循环执行SQL ,这个在用户检索页面非常明显,一个按钮要运行140多次 SQL查询,其实这些都可以由几个简单的 SQL组合完成
2.   SQL的结构很奇怪,有点像程序自动生成
3.   SQL仍然没有使用绑定变量,系统存在大量的 SQL硬解析

下面是没有使用绑定变量的SQL ,SQL绑定一定要做上去,否则 WEB系统再怎么调整也是不行的

SELECT * FROM (SELECT A.*, rownum r FROM (SELECT a.USERID, a.USERNAME FROM USERS a WHERE 1 = 1 AND a.ORGID = 636.0 AND a.SEX = 'F' AND a.ORGID =:1 and

a.USERROLE='3') A WHERE rownum <= 500) B WHERE r > = 0;


这里 a.ORGID = 636.0指没有采取绑定变量。

[ 本帖最后由 liangjz 于 2008-6-2 01:32 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-6-2 01:02:47 | 只看该作者
这里 a.ORGID = 636.0指绑定变量还是没有绑定变量啊
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-6-3 11:02:04 | 只看该作者
a.ORGID = 636.0

我怎么感觉是绑定变量的???
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-6-3 12:58:51 | 只看该作者
a.ORGID =:1 这种是采取绑定变量
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-6-10 13:47:07 | 只看该作者
什么叫绑定变量?
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2009-2-14 19:52:25 | 只看该作者

dream2009

对于程序而言,获得数据的方式可以有很多种,但能够分析出可以重用不易变的数据是重要的,我也发现过,要获得数据时,就下SQL,这个时候用一下缓存方式就可以节省很多的数据库的交互了
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-15 12:15 , Processed in 0.074374 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表