ORA-00600:[32695]、[hash aggregation can't be done]エラー解決


開発過程において、要求されたフィールドが多く、且つgroup by統計を経なければならないため、プログラムのスケジュールが一定期間後にエラーが発生した場合、ORA-00600:[32695]、[hash aggregation can't be done]は、オンラインの解決方法を参照して、プログラムを記憶した上で使用する方法を解決し、現在転載してください。
以下は原文です
それともあのhash group byアルゴリズムの問題ですか?ログファイルには以下の記録があります。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73*** ACTIONNAME:(SQL - ) 2010-09-03 14:27:54.594*** MODULE NAME:(PL/SQL Developer) 2010-09-03 14:27:54.594*** SERVICE NAME:(HQYDB1) 2010-09-03 14:27:54.594*** SESSION ID:(3205.17923) 2010-09-03 14:27:54.594*** 2010-09-03 14:27:54.594ksedmp: internal orfatal errorORA-00600: internal error code, arguments: [32695], [hash aggregation can't be done], [], [], [], [], [], []Current SQL statement for this session:create table zou_201008_cell_id asselect /* g_all_cdr02,60 */calling_num mobile_number,lac,lpad(cell_id,5,'0') cell_id,count(*) c,sum(call_duration) call_duration,sum(decode(record_type,'00',1,0)*call_duration) moc_call_duration,sum(decode(record_type,'01',1,0)*call_duration) mtc_call_duarionfrom  g_all_cdr02where substr(calling_num,1,7) in (select mobile_prefix from zou_mobile_prefix)group bycalling_num ,lac,lpad(cell_id,5,'0')----- Call Stack Trace -----calling              call     entry                argument valuesinhexlocation             type     point                (? means dubious value)-------------------- -------- -------------------- ----------------------------ksedst+001c          bl       ksedst1              100000000 ? 11055A9A0 ?ksedmp+0290          bl       ksedst               104A54870 ?ksfdmp+0018          bl       03F30204kgeriv+0108          bl       _ptrglkgesiv+0080          bl       kgeriv               1050BE654 ? 1050BE604 ?                                                   0000027E5 ? 080000000 ?                                                   07FFFFFFF ?ksesic1+0060         bl       kgesiv               43300000FFFF5310 ?                                                   4530000000000000 ?                                                   000000071 ? 000000001 ?                                                   000000000 ?qeshPartitionBuildH  bl       01F9CA24D+04bcqeshGBYOpenScan2+02  bl       qeshPartitionBuildH  0000027E5 ? 1105C06C0 ?34                            DqeshGBYOpenScan+001  bl       qeshGBYOpenScan2     FFFFFFFFFFF5740 ? 11055A938 ?8                                                  000000000 ? 000000010 ?qerghFetch+05e8      bl       qeshGBYOpenScan      000001000 ?rwsfcd+0054          bl       _ptrglqerltFetch+036c      bl       03F2EB1Cctcdrv+4160          bl       01F9C898opiexe+2884          bl       ctcdrv               100000001 ? 100000001 ?                                                   110467F30 ?opiosq0+19f0         bl       opiexe               FFFFFFFFFFF8B50 ?                                                   2824422142420820 ?                                                   FFFFFFFFFFF8C10 ?kpooprx+0168         bl       opiosq0              300000000 ? 000000000 ?                                                   000000000 ? A4000000000000 ?kpoal8+0400          bl       kpooprx              FFFFFFFFFFFB464 ?                                                   FFFFFFFFFFFB068 ?                                                   1BF000001BF ? 100000001 ?                                                   000000000 ? A40000000000A4 ?                                                   000000000 ? 1103878F8 ?opiodr+0ae0          bl       _ptrglttcpip+1020          bl       _ptrglopitsk+1124          bl       01F9F2A0opiino+0990          bl       opitsk               000000000 ? 000000000 ?opiodr+0ae0          bl       _ptrglopidrv+0484          bl       01F9E0E8sou2o+0090           bl       opidrv               3C02DC1BBC ? 44065F000 ?                                                   FFFFFFFFFFFF3A0 ?opimai_real+01bc     bl       01F9B9F4main+0098            bl       opimai_real          000000000 ? 000000000 ?__start+0098         bl       main                 000000000 ? 000000000 ?  --------------------- Binary Stack Dump ---------------------今回は、アプリケーションの人が、alter sessionの役割領域を知らないので、PL/SQL Developerツールの異なるウィンドウ(つまり、同じセッションではない)で実行されました。およびgroup by動作に関するSQLは、unpublished bug:6471770をトリガする。私達は比較的に簡単にworkoundでこのBugを避けます。
1.方法1これはシステムの権限が必要で、この方式を提案しません。/* _gby_hash_aggregation_enabled */alter system set「_gbyuhash uggggaregational bled」=false;
alter session set“_gbyuhash gagations”=false;
2.この方式が可能であれば、プログラムにこれを追加します。
hintで解決できます/* NO_USE_HASH_AGGREGATION hint */select   /*+ NO_USE_HASH_AGGREGATION */ ....