51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1941|回复: 1
打印 上一主题 下一主题

[原创] oracle (2-tier)协议SQL语句响应时间的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-6-17 14:58:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
SQL:
select count(*) recordCount from (select * from CONTA_ENTER_TBL  where  
DEPOT_COMPANY_ID = '661'
and CONTA_in_DATE >=to_date('2002-05-16 00:00','yyyy-mm-dd hh24:mi:ss') and CONTA_in_DATE <=to_date('2008-06-16 00:00','yyyy-mm-dd hh24:mi:ss')  
and DEL_MARK = 0 and RECORD_TYPE=1
)
上面的SQL语句在TOAD中执行需要13秒
在LOADRUNNER中选择oracle (2-tier)协议,录制该SQL的脚本如下:
lr_start_transaction("counter");

        lr_think_time(20);

        lrd_ora8_handle_alloc(OraEnv1, STMT, &OraStm19, 0);
        lrd_ora8_attr_set(OraStm19, PREFETCH_ROWS, "0", -1, 0);
        lrd_ora8_attr_set(OraStm19, PREFETCH_MEMORY, "0", -1, 0);
        lrd_ora8_stmt(OraStm19, "select count(*) recordCount from (select * from CONTA_ENTER_TBL  "
        "where  \nDEPOT_COMPANY_ID = '661' \nand CONTA_in_DATE >="
        "to_date('2002-05-16 00:00','yyyy-mm-dd hh24:mi:ss') and "
        "CONTA_in_DATE <=to_date('2008-06-16 00:00','yyyy-mm-dd hh24"
        ":mi:ss')  \nand DEL_MARK = 0 and RECORD_TYPE=1 \n)", 1, 0, 0);
        lrd_ora8_exec(OraSvc1, OraStm19, 0, 0, &uliRowsProcessed, 0, 0, 0, 0,
        0);
        lr_end_transaction("counter",LR_AUTO);
问题是:
在回放或者在并发操作得出的响应时间是:0.058秒,而在TOAD中执行时它是13秒,相差为什么那么大呢?到底哪个时间是准确的呢?请诸位大侠帮忙解释一下。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-6-18 21:33:11 | 只看该作者
oracle执行是有缓存的,第一次以外的运行因为缓存的关系速度会大大加快,会不会是这个原因
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-7 23:53 , Processed in 0.072360 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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