oracle 如何查看单位时间的commit次数 因为数据量比较大,导致生产I/O出现堵塞现象,分析发现是oracle单位时间的commit事务量太大,对程序进行修改,现在想看看修改后的单位时间内commit的个数,又没有运维使用的那种系统工具,亲们,这个如何查看单位时间数据库commit的次数呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select * from V$STATNAME where name like '%commit%';一般是user commits然后结合v$sesstat 查找哪些session的commit次数过多,找到session之后,找到sid之后,后面怎么看就不用多说了吧 深入研究commit是比较复杂的,和参数commit_write有关查看单位时间数据库commit的次数可以比较粗劣找出同时启动两个session, 一个以sys用户登陆, 一个以用户session登陆1)在linux shell下运行strace -T -c -p , 跟踪lgwr在这段时间的所有系统调用统计2)在用户session下运行do_loop procedure create or replace procedure do_loop (p_type in varchar2) as l_start NUMBER; l_loops NUMBER := 10000; BEGIN l_start := DBMS_UTILITY.get_time; FOR i IN 1 .. l_loops LOOP INSERT INTO commit_test (id, description) VALUES (seq_commit_test.nextval, 'Description for ' || i); commit; END LOOP; DBMS_OUTPUT.put_line(RPAD('COMMIT WRITE ' || p_type, 30) || ': ' || (DBMS_UTILITY.get_time - l_start)); END; / 3)在sys 用户下得到lgwr 在此段时间的跟踪统计里面的字段io_submit的次数基本与commit次数一致 oracle表空间有剩余,却自动增长 我有一大段代码,是我取得存贮过程中的一段,我想定义一个变量,执行这段代码 sql语句如何限制返回查询结果的条数啊? oracle对一个列分类查询 关于oracle备份的问题 job的时候报错 多表的查询的问题~~~~~ 堪称oracle经典问题?oracle起不来 错误ra-01034 oracle not available 紧急求救sql高手,分不够您说话! 我建了索引,却不起作用?why??? 寻求各位大侠帮助使用crontab定时器,删除oracle 90天之前的审计日志和归档日志的脚本, 公元前的时间如何存到数据库?
一般是user commits然后结合v$sesstat 查找哪些session的commit次数过多,找到session之后,找到sid之后,后面怎么看就不用多说了吧
查看单位时间数据库commit的次数可以比较粗劣找出
同时启动两个session, 一个以sys用户登陆, 一个以用户session登陆
1)在linux shell下运行strace -T -c -p , 跟踪lgwr在这段时间的所有系统调用统计
2)在用户session下运行do_loop procedure
create or replace procedure do_loop (p_type in varchar2) as l_start NUMBER; l_loops NUMBER := 10000; BEGIN l_start := DBMS_UTILITY.get_time; FOR i IN 1 .. l_loops LOOP INSERT INTO commit_test (id, description) VALUES (seq_commit_test.nextval, 'Description for ' || i); commit; END LOOP; DBMS_OUTPUT.put_line(RPAD('COMMIT WRITE ' || p_type, 30) || ': ' || (DBMS_UTILITY.get_time - l_start)); END; /
3)在sys 用户下得到lgwr 在此段时间的跟踪统计里面的字段io_submit的次数基本与commit次数一致