zzjjd 发表于 2009-08-12 16:54

informix 9 sql监控问题。

最近接到一个任务,要记录unix下informix指定库中执行的SQL情况。因为有一个刚开发的系统在访问数据库时性能很慢。是用java写的。在网上找了两天基本就是三种方案。
1.set explain 此方法可记录dbaccess下执行的SQL,但无法记其它方式的操作。
2.用onstat -g -sql。这个方法是动态执行的不能完全记录下某一时间段的SQL运行情况。
3.database sysmaster;
select
username,sqx_sessionid,sqx_conbno,sqx_sqlstatement
from syssqexplain,sysscblst
where sqx_sessionid=sid
暂时还没有试过,因为syssqexplain表需要DBA权限所以还不知道是否可行。
以上这三种都无法保存完整的SQL执行情。希望坛子里的哥们给指点一下。
只要能在指定时间内记录SQL语句,和执行时间就可以。

[ 本帖最后由 zzjjd 于 2009-8-12 17:07 编辑 ]

zzjjd 发表于 2009-08-13 09:05

真的没办法吗!

koolkite 发表于 2009-08-13 09:09

回复 #1 zzjjd 的帖子

除非用到一些商业软件,否则的确很难

jily_cunix 发表于 2009-08-13 16:51

IDS10中可以跟踪指定会话连接执行的每个sql语句,不晓得IDS9中是否支持。
onmode -Y sid 1|0    --1:打开跟踪 0:关闭跟踪
比如当前数据库中有一个用户sid为8766的test用户上来的连接,打开跟踪:
onmode -Y 8766 1
则在数据库主机test用户目录中会生成一个sqexplain.out.8766的跟踪文件,当执行onmode -Y 8766 0后关闭跟踪。
这样可以针对某个用户连接会话进行实时跟踪并分析sql执行计划,以确定应用发送的sql是否存在问题。

liaosnet 发表于 2009-08-13 17:00

回复 #4 jily_cunix 的帖子

这个在9.40中主就有了~~要分析所有会话才能满足LZ的要求吧....

这命令要谨慎使用~

wushanyink 发表于 2009-08-14 10:44

廖总最近在哪里呢?

广州?杭州?
页: [1]
查看完整版本: informix 9 sql监控问题。