tomcat重启后每一次跑程序要2分钟,第二次跑之就正常了,2秒左右就能出来。
对比了这两个的10046事件:第一次,物理读总共4718
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTScall count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 123 0.03 0.03 0 0 0 0
Execute 126 0.23 0.22 0 0 0 0
Fetch 422 0.76 108.06 4718 92449 0 85233
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 671 1.03 108.32 4718 92449 0 85233第二次,物理读只有4
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTScall count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 53 0.03 0.03 0 0 0 0
Execute 54 0.18 0.18 1 2 0 0
Fetch 342 0.43 0.61 3 93083 0 79200
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 449 0.65 0.82 4 93085 0 79200有两个问题不明白:
1,即使第一次物理读有4718,也不会需要2分钟才读取出来
2,为何tomcat重启后就会cache不到数据呢,
对比了这两个的10046事件:第一次,物理读总共4718
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTScall count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 123 0.03 0.03 0 0 0 0
Execute 126 0.23 0.22 0 0 0 0
Fetch 422 0.76 108.06 4718 92449 0 85233
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 671 1.03 108.32 4718 92449 0 85233第二次,物理读只有4
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTScall count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 53 0.03 0.03 0 0 0 0
Execute 54 0.18 0.18 1 2 0 0
Fetch 342 0.43 0.61 3 93083 0 79200
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 449 0.65 0.82 4 93085 0 79200有两个问题不明白:
1,即使第一次物理读有4718,也不会需要2分钟才读取出来
2,为何tomcat重启后就会cache不到数据呢,
即使数据缓存在tomcat里面,tomcat重启后,第一次查询和后面的查询的物理读应该也是一样的啊,tomcat重启应该不会清空oracle的data buffer才对。感觉到很奇怪