求助 !!!! 跟踪ASA的运行的SQL语句老是失败

54993699 2019-11-14 09:02:14
有一PB写的程序, 数据库用的ASA, 我想要跟踪他运行的SQL语句。 主要功能是为了给客户做数据对接。平时都是用JAVA, 对ASA和PB不熟,
查资料后,使用以下语句开启了输出日志的功能,

call sa_server_option ('Request_level_log_file', 'D:\\temp\\sql.log');
call sa_server_option ('Request_level_logging', 'SQL');

日志返回结果

=,>,59815,PREPARE,75773
+1,<,59815,EXEC,75773
=,W,59815,111,语句无法执行
=,>,59815,EXEC
=,<,59815,OPEN,75773
+2,>,59815,OPEN,75774
+3,W,59815,100,未找到行
+1,<,59815,CLOSE,75774
=,I,59815,1,4,0,NOSCROLL*+READONLY+HOLD
=,>,59815,CLOSE
=,<,59815,COMMIT
=,>.,59815
+1,<,59815,DROP_STMT,75773
=,>,59815,DROP_STMT

日志中并未有SQL语句, 只有象75773这样的句柄,请问我下一步应该 去那里查这个句柄所对应的SQL语句,如果这个方法查不到,那还有什么其它的方法,
折磨我快两天了,实在没办法, 请会的大神多多赐教!! !



...全文
149 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
EisenWang 2019-11-14
  • 打赏
  • 举报
回复
然后要查的时候用 call sa_get_request_times(iqname_req.log) 这个过程来调用那个记录文件,把那个文件给load到一个叫satmp_request_time的临时表里
然后按需检查 -- eg.
查所有Conn id 129的 -- select * from satmp_request_time where conn_id=129
查某段时间有些什么connection提交过request -- select * from satmp_request_time where start_time between '2016-07-10 10:30:00' and '2016-07-10 11:00:00'
甚至查那个request的具体sql code -- select stmt from satmp_request_time where conn_id=137
EisenWang 2019-11-14
  • 打赏
  • 举报
回复
Request_level_log_file 指的是 server端的,不是客户端的。不要加路径,直接试试,然后在server上看看
call sa_server_option('request_level_logging', 'SQL'); 和 call sa_server_option('request_level_log_file','sqltrace.log');
54993699 2019-11-14
  • 打赏
  • 举报
回复
感谢 ,感谢
54993699 2019-11-14
  • 打赏
  • 举报
回复
找到了, 结贴。。

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧