2回答

0收藏

[已解决] 除了SqlServer自带的profiler,其他数据库如何追数

问题求助 问题求助 1183 人阅读 | 2 人回复 | 2021-03-24

除了SqlServer自带的profiler,其他数据库如何追数
從未改變已获得悬赏 2 K豆+50 K豆

最佳答案

跟踪数据变化的方法: 1.可查询日志,去看看数据的变化情况. 2.设置一个字段,每次数据更新,则增加一条记录.类似企业数据的变更一样. 3.不过,如果是更改表结构,则很难查询到. 下面例句几种常见数据库的追数方法: SQLserver:https://blog.csdn.net/hzp666/article/details/108214167 在Oracle数据库10g中跟踪SQL(转):http://blog.itpub.net/756652/viewspace-242319/Mysql通过查看跟踪日志跟踪执行的SQL语句:https://www.jb51.net/article/46398.htm ...

回答|共 2 个

天涯莺歌

发表于 2021-3-24 22:08:05 | 显示全部楼层

本帖最后由 天涯莺歌 于 2021-3-24 22:22 编辑

对于业务系统底层是SQL Server数据库的,可以采用楼主的方法进行SQL追踪。对于业务系统底层是Oracle数据库的,比如用友NC57可采用脚本的方式追踪SQL,用友NC65可以采用用脚本或者F12查看日志的方式追踪SQL。
脚本追数的原理是:业务系统的表单点击查询,同时快速在数据库里执行脚本,查看在刚才点击的时间段里数据库里执行过的SQL查询语句。

附上Oracle的追数脚本:
select  last_load_time ,
sql_text,sql_fulltext,
to_char(to_date(LAST_LOAD_TIME,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')   last_load_time
from v$sql
where to_char(to_date(LAST_LOAD_TIME,'yyyy/mm/dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')>='2015-01-19 17:17:21'
     and   to_char(to_date(LAST_LOAD_TIME,'yyyy/mm/dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')<='2015-01-19 17:18:21'
     --and SQL_text like '%2014-12-09%'      
order by first_load_time desc;

select sysdate from dual;




贴吧楼中楼回复我要说一句 收起回复
B Color Smilies
还可输入 200 个字符

從未改變

发表于 2021-3-26 14:29:47 | 显示全部楼层

跟踪数据变化的方法:
1.可查询日志,去看看数据的变化情况.
2.设置一个字段,每次数据更新,则增加一条记录.类似企业数据的变更一样.
3.不过,如果是更改表结构,则很难查询到.



下面例句几种常见数据库的追数方法:


SQLserver:https://blog.csdn.net/hzp666/article/details/108214167
在Oracle数据库10g中跟踪SQL(转):http://blog.itpub.net/756652/viewspace-242319/
Mysql通过查看跟踪日志跟踪执行的SQL语句:https://www.jb51.net/article/46398.htm
贴吧楼中楼回复我要说一句 收起回复
B Color Smilies
还可输入 200 个字符
机器精于计算,而我们善于思考,BI助力决策!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则