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 编辑 ] 真的没办法吗!
回复 #1 zzjjd 的帖子
除非用到一些商业软件,否则的确很难 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是否存在问题。
回复 #4 jily_cunix 的帖子
这个在9.40中主就有了~~要分析所有会话才能满足LZ的要求吧....这命令要谨慎使用~ 廖总最近在哪里呢?
广州?杭州?
页:
[1]