环境是WINDOWS XP + ORACLE 10服务器启动很慢?而且服务器一启动占有很大的资源?
感觉还是服务器进程里面有进程被锁?
看了下v$lockselect * from v$lock;ADDR KADDR SID TYPE ID1 ID2 LMODE REQUEST CTIME BLOCK
-------- -------- ---------- ---- ---------- ---------- ---------- ---------- ---------- ----------
21C34228 21C3423C 165 XR 4 0 1 0 425 0
21C34284 21C34298 165 CF 0 0 2 0 402 0
21C3433C 21C34350 165 RS 25 1 2 0 390 0
21C343F4 21C34408 166 RT 1 0 6 0 393 0
21C34508 21C3451C 164 PS 1 0 4 0 299 0
21C34564 21C34578 167 MR 1 0 4 0 315 0
21C345C0 21C345D4 167 MR 2 0 4 0 315 0
21C3461C 21C34630 167 MR 3 0 4 0 315 0
21C34678 21C3468C 167 MR 4 0 4 0 315 0
21C346D4 21C346E8 167 MR 5 0 4 0 315 0
21C34730 21C34744 167 MR 201 0 4 0 315 0
21C3478C 21C347A0 164 PS 1 1 4 0 299 0
21C347E8 21C347FC 164 TS 3 1 3 0 299 0
21C34844 21C34858 164 PS 1 2 4 0 299 0
21C348A0 21C348B4 164 PS 1 3 4 0 298 0
21C348FC 21C34910 155 PS 1 1 4 0 298 0
21C34958 21C3496C 154 PS 1 2 4 0 298 0
21C349B4 21C349C8 152 PS 1 3 4 0 298 0
21C34A10 21C34A24 153 PS 1 0 4 0 298 0
21C34A6C 21C34A80 164 TX 131111 4537 6 0 298 020 rows selectedselect * from v$session where sid in(select sid from v$lock);
SADDR SID SERIAL# AUDSID PADDR USER# OWNERID STATUS SERVER SCHEMA# SCHEMANAME
-------- ---------- ---------- ---------- -------- ---------- ---------- -------- --------- ---------- ------------
22736EAC 152 1 0 2264DDCC 0 65700 ACTIVE DEDICATED 0 SYS
22738174 153 1 0 2264CBFC 0 65700 ACTIVE DEDICATED 0 SYS
2273943C 154 1 0 2264D7DC 0 65700 ACTIVE DEDICATED 0 SYS
2273A704 155 3 0 2264D1EC 0 65700 ACTIVE DEDICATED 0 SYS
2274500C 164 1 0 22649C7C 0 2147483644 ACTIVE DEDICATED 0 SYS
227462D4 165 1 0 2264968C 0 2147483644 ACTIVE DEDICATED 0 SYS
2274759C 166 1 0 2264909C 0 2147483644 ACTIVE DEDICATED 0 SYS
22748864 167 1 0 22648AAC 0 2147483644 ACTIVE DEDICATED 0 SYS
这lock视图里面看到比正常多了几个?通过alter system kill session '152,1';杀了几个进程后,通过LOCK视图查出来还是有很多锁?这里不能杀掉SID 大于164的进程
感觉还是服务器进程里面有进程被锁?
看了下v$lockselect * from v$lock;ADDR KADDR SID TYPE ID1 ID2 LMODE REQUEST CTIME BLOCK
-------- -------- ---------- ---- ---------- ---------- ---------- ---------- ---------- ----------
21C34228 21C3423C 165 XR 4 0 1 0 425 0
21C34284 21C34298 165 CF 0 0 2 0 402 0
21C3433C 21C34350 165 RS 25 1 2 0 390 0
21C343F4 21C34408 166 RT 1 0 6 0 393 0
21C34508 21C3451C 164 PS 1 0 4 0 299 0
21C34564 21C34578 167 MR 1 0 4 0 315 0
21C345C0 21C345D4 167 MR 2 0 4 0 315 0
21C3461C 21C34630 167 MR 3 0 4 0 315 0
21C34678 21C3468C 167 MR 4 0 4 0 315 0
21C346D4 21C346E8 167 MR 5 0 4 0 315 0
21C34730 21C34744 167 MR 201 0 4 0 315 0
21C3478C 21C347A0 164 PS 1 1 4 0 299 0
21C347E8 21C347FC 164 TS 3 1 3 0 299 0
21C34844 21C34858 164 PS 1 2 4 0 299 0
21C348A0 21C348B4 164 PS 1 3 4 0 298 0
21C348FC 21C34910 155 PS 1 1 4 0 298 0
21C34958 21C3496C 154 PS 1 2 4 0 298 0
21C349B4 21C349C8 152 PS 1 3 4 0 298 0
21C34A10 21C34A24 153 PS 1 0 4 0 298 0
21C34A6C 21C34A80 164 TX 131111 4537 6 0 298 020 rows selectedselect * from v$session where sid in(select sid from v$lock);
SADDR SID SERIAL# AUDSID PADDR USER# OWNERID STATUS SERVER SCHEMA# SCHEMANAME
-------- ---------- ---------- ---------- -------- ---------- ---------- -------- --------- ---------- ------------
22736EAC 152 1 0 2264DDCC 0 65700 ACTIVE DEDICATED 0 SYS
22738174 153 1 0 2264CBFC 0 65700 ACTIVE DEDICATED 0 SYS
2273943C 154 1 0 2264D7DC 0 65700 ACTIVE DEDICATED 0 SYS
2273A704 155 3 0 2264D1EC 0 65700 ACTIVE DEDICATED 0 SYS
2274500C 164 1 0 22649C7C 0 2147483644 ACTIVE DEDICATED 0 SYS
227462D4 165 1 0 2264968C 0 2147483644 ACTIVE DEDICATED 0 SYS
2274759C 166 1 0 2264909C 0 2147483644 ACTIVE DEDICATED 0 SYS
22748864 167 1 0 22648AAC 0 2147483644 ACTIVE DEDICATED 0 SYS
这lock视图里面看到比正常多了几个?通过alter system kill session '152,1';杀了几个进程后,通过LOCK视图查出来还是有很多锁?这里不能杀掉SID 大于164的进程
解决方案 »
- 一个比较有趣的求和问题
- [求助]数据库导入导出问题
- 请问如何导出导入ORALCE里面的图片。
- 高分求助:只安装了oracle9的客户端如何使用sqlldr命令??
- 好消息:五一期间ITPUB在上海进行《性能调整》培训
- 傻傻的问,sid是什么东西
- 高手们,在oracle里,字段名和内部关键字重名怎么办呀
- 帮帮忙,关于long类型字段的全文检索问题,100分相送
- SOS:中文乱码数据的得挽救
- oracle帮助怎么查?
- Connection refused(DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
- Oracle数据库中怎么插入Date格式的数据
select * from v$process;
ADDR PID SPID USERNAME SERIAL# TERMINAL PROGRAM BACKGROUND PGA_USED_MEM PGA_ALLOC_MEM PGA_MAX_MEM
-------- ------ -------- -------- ------- ---------------- -------------------- ---------- ------------ ------------- -----------
226472EC 1 0 PSEUDO 0 0 0
226478DC 2 2576 SYSTEM 1 WWW-DFC91BD5320 ORACLE.EXE (PMON) 1 209825 361709 361709
22647ECC 3 2580 SYSTEM 1 WWW-DFC91BD5320 ORACLE.EXE (PSP0) 1 209033 361709 361709
226484BC 4 2584 SYSTEM 1 WWW-DFC91BD5320 ORACLE.EXE (MMAN) 1 210233 361709 361709
22648AAC 5 2724 SYSTEM 1 WWW-DFC91BD5320 ORACLE.EXE (DBW0) 1 274257 1784869 1784869
2264909C 6 2732 SYSTEM 1 WWW-DFC91BD5320 ORACLE.EXE (LGWR) 1 4432577 9536221 10060509
2264968C 7 2736 SYSTEM 1 WWW-DFC91BD5320 ORACLE.EXE (CKPT) 1 300929 754685 754685
22649C7C 8 2740 SYSTEM 1 WWW-DFC91BD5320 ORACLE.EXE (SMON) 1 285461 492781 492781
2264A26C 9 2744 SYSTEM 1 WWW-DFC91BD5320 ORACLE.EXE (RECO) 1 283057 427245 427245
2264A85C 10 2748 SYSTEM 1 WWW-DFC91BD5320 ORACLE.EXE (CJQ0) 1 461493 1279213 1672429
2264AE4C 11 2752 SYSTEM 1 WWW-DFC91BD5320 ORACLE.EXE (MMON) 1 1188513 1606597 2524101
2264B43C 12 2756 SYSTEM 1 WWW-DFC91BD5320 ORACLE.EXE (MMNL) 1 218653 427245 427245
2264BA2C 13 2824 SYSTEM 1 WWW-DFC91BD5320 ORACLE.EXE (D000) 564369 1213677 1213677
2264C01C 14 2828 SYSTEM 1 WWW-DFC91BD5320 ORACLE.EXE (S000) 118697 296173 296173
2264C60C 15 3192 SYSTEM 10 WWW-DFC91BD5320 ORACLE.EXE (J000) 1303949 2131181 2917613
2264CBFC 16 3148 SYSTEM 1 WWW-DFC91BD5320 ORACLE.EXE (P000) 180345 361709 7308525
2264D1EC 17 3152 SYSTEM 1 WWW-DFC91BD5320 ORACLE.EXE (P001) 193197 361709 7308525
2264D7DC 18 3644 SYSTEM 1 WWW-DFC91BD5320 ORACLE.EXE (P002) 218433 361709 361709
2264DDCC 19 3648 SYSTEM 1 WWW-DFC91BD5320 ORACLE.EXE (P003) 218433 361709 361709
2264E3BC 20 3756 SYSTEM 1 WWW-DFC91BD5320 ORACLE.EXE (QMNC) 1 211089 361709 361709
ADDR PID SPID USERNAME SERIAL# TERMINAL PROGRAM BACKGROUND PGA_USED_MEM PGA_ALLOC_MEM PGA_MAX_MEM
-------- ------ -------- -------- ------- ---------------- -------------------- ---------- ------------ ------------- -----------
2264E9AC 21 3784 SYSTEM 1 WWW-DFC91BD5320 ORACLE.EXE (q000) 1 310637 558317 558317
2264EF9C 22 3832 SYSTEM 1 WWW-DFC91BD5320 ORACLE.EXE (q001) 1 227273 361709 361709
2264F58C 23 1956 SYSTEM 2 WWW-DFC91BD5320 ORACLE.EXE (SHAD) 497625 885997 7636205
2264FB7C 24 2212 SYSTEM 2 WWW-DFC91BD5320 ORACLE.EXE (SHAD) 544649 754925 7046381
2265016C 25 1396 SYSTEM 3 WWW-DFC91BD5320 ORACLE.EXE (SHAD) 395097 754925 4949229
2265075C 26 3960 SYSTEM 2 WWW-DFC91BD5320 ORACLE.EXE (SHAD) 376869 820461 820461
22650D4C 27 2904 SYSTEM 3 WWW-DFC91BD5320 ORACLE.EXE (SHAD) 379021 885997 1213677
2265133C 28 1376 SYSTEM 3 WWW-DFC91BD5320 ORACLE.EXE (SHAD) 438005 885997 1148141
2265192C 29 1816 SYSTEM 3 WWW-DFC91BD5320 ORACLE.EXE (SHAD) 442277 1082605 1737965
22651F1C 30 3388 SYSTEM 1 WWW-DFC91BD5320 ORACLE.EXE (m000) 应该就是这些进程的原因导致很慢?
通过重启计算机服务器什么的?都还是一样。
怎么把进程给杀掉,我指的是在session里面没有的
网上很多方法杀进程,需要找到session中的SID然后杀掉。
用statspack看看
你试查看启动到正常后,系统里有多少个进程?
以前服务器挺快的,但是因为
自从我前几天晚上执行了一个存储过程,执行了一个晚上
第二天一看,存储过程还没有执行完
然后数据库就巨慢,所以就怀疑到是锁表问题,
在数据库进程中有僵死进程在里面,而且占有很大内存。
一直都没有释放。
但就是在session里面查不到SID
+
select * from V$SESSTAT where sid in(select sid from v$lock) and value >100; SID STATISTIC# VALUE
---------- ---------- ----------
164 2 25020
164 7 14841110
164 9 60241809
164 12 33539
164 15 1280
164 17 304540
164 20 294792
164 21 1042980
164 22 21394
164 25 843348
164 26 1826388
164 30 3996114
164 31 1051
164 32 3996113
164 37 370571
164 38 293
164 39 3060539392
164 47 59555916
164 48 59555916
164 50 685893 SID STATISTIC# VALUE
---------- ---------- ----------
164 51 685893
164 52 215095
164 54 373601
164 55 373601
164 57 370571
164 58 3060539392
164 59 23411993
164 89 5049
164 93 374131
164 94 251303
164 96 251705
164 97 376142
164 104 11287
164 105 11287
164 111 219
164 114 3030
164 116 169
164 125 172818
164 128 10450
164 130 36200
164 131 33546 SID STATISTIC# VALUE
---------- ---------- ----------
164 133 15156866
164 134 1794503344
164 141 132
164 142 6403
164 144 26378
164 174 2976220
164 178 296225
164 186 14740917
164 188 300
164 190 5906
164 231 115
164 232 115
164 244 302
164 249 360856
164 250 33059
164 251 99480
164 253 875
164 254 81150
164 255 322
164 268 24033
164 269 172585 SID STATISTIC# VALUE
---------- ---------- ----------
164 279 15492
164 305 476
164 320 195907
164 321 265123
164 325 507
164 328 162
164 329 214
164 330 24563
164 331 685
164 334 29136
164 341 854
164 343 2899
165 7 465
165 9 155
165 17 130
165 20 156280
165 21 156280
165 23 10269
165 24 25533
165 25 1064296
165 26 1064296 SID STATISTIC# VALUE
---------- ---------- ----------
165 30 36646
165 32 36637
165 37 2300
165 39 35872768
165 40 80893
165 42 1323548672
165 50 155
165 51 155
165 54 226
165 56 220
165 57 226
165 58 1851392
165 62 220
165 63 220
165 65 220
165 66 1802240
165 67 220
165 128 330
165 131 118
165 249 499
166 20 90816 SID STATISTIC# VALUE
---------- ---------- ----------
166 21 90816
166 22 1830
166 23 20026
166 24 25605
166 25 4906580
166 26 5168724
166 30 211
166 32 210
166 37 1092
166 39 16318464
166 40 26257
166 41 23445
166 42 2227789824
166 58 49152
166 66 40960
166 136 6747648
166 138 22214
166 139 4305664
166 140 53270
167 20 90816
167 21 90816 SID STATISTIC# VALUE
---------- ---------- ----------
167 22 228534
167 23 228818
167 24 25576
167 25 2374788
167 26 2374788
167 39 720896
167 40 630314
167 41 101442
167 42 7547420672
167 58 98304
167 62 921316
167 64 921316
167 65 630314
167 66 7547420672
167 67 686346
167 68 7347068
167 69 299223
167 70 155264
167 74 2083
167 75 575321
167 133 225766 SID STATISTIC# VALUE
---------- ---------- ----------
167 134 33671532
167 135 1167
167 141 1157
这些大VALUE值很值得怀疑。
因为很慢, 所以怀疑到锁, 后来发现绝大多数的锁是正常的
但是经常有行并发写被阻塞锁定, 所以最后单独建了一个用户scheme调试, 避免了相互干扰在linux/unix下, 可以通过session定位process, 然后再kill释放资源,
但是在xp下, 估计kill session没有什么作用(没有实验过, 只是猜测)
因为xp中oracle是以单进程多线程运行的, 线程只能通过进程来获取资源当然这个资源是指内存上的, 而不是说数据表的块
kill session能解决一时问题, 但终归不是一个好主意, 我觉得
最终的办法是在procedure的优化上面关于如何定位查看对效率有影响的lock, 我总结成了一个文档,
等会我找找, 贴一部分楼主可能用得上的上来
谢谢
[email protected]