├── parse_trace_owi ├── parse_trace_owi ├── README.md ├── parse_trace_owi.go └── eventclass.go ├── README.md ├── event_hist.awk ├── listener_analyzer.py ├── format_10046_10053.awk └── apud.py /parse_trace_owi/parse_trace_owi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ora600pl/tracefile_parsers/HEAD/parse_trace_owi/parse_trace_owi -------------------------------------------------------------------------------- /parse_trace_owi/README.md: -------------------------------------------------------------------------------- 1 | # Parse Trace OWI 2 | This is a simple tool to parse Oracle SQL trace files for wait events and correlate them with SQLs. 3 | 4 | After downloading the source, you have to set GOPATH to the directory with parse_trace_owi and execute: go build parse_trace_owi.go 5 | 6 | HOWTO : https://blog.ora-600.pl/2021/01/08/what-to-do-with-5gb-of-trace-files/ 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Simple tracefile parsers by Kamil Stawiarski (@ora600pl) 2 | They can help you to visualize your trace data. 3 | 4 | If you want to know how to use the following scirpts, visit those blog posts: 5 | 6 | a) event_hist.awk : http://blog.ora-600.pl/2016/03/08/awk-to-the-rescue-wait-event-histogram-from-trace-file/ 7 | 8 | b) format_10046_10053.awk : http://blog.ora-600.pl/2016/03/16/awk-to-the-rescue-2-1004610053/ 9 | 10 | c) apud.py : http://blog.ora-600.pl/2017/09/20/rollback-internals/ 11 | 12 | 13 | -------------------------------------------------------------------------------- /event_hist.awk: -------------------------------------------------------------------------------- 1 | /(db file scattered read)|(db file sequential read)|(direct path read)/ { 2 | event_part=substr($0,index($0,"'")+1); 3 | event_name=substr(event_part,1,index(event_part,"'")-1); 4 | event_time1=substr($0,index($0,"ela= ")+5); 5 | event_time=substr(event_time1,1,index(event_time1,"file")-1); 6 | events[event_name]+=event_time; 7 | event_cnt[event_name]++; 8 | 9 | event_time_m=event_time/1000; 10 | if(event_time_m<=1) 11 | { 12 | event_hist[event_name,"<= 1"]++; 13 | } 14 | else if(event_time_m>1 && event_time_m<=2) 15 | { 16 | event_hist[event_name,"<= 2"]++; 17 | } 18 | else if(event_time_m>2 && event_time_m<=4) 19 | { 20 | event_hist[event_name,"<= 4"]++; 21 | } 22 | else if(event_time_m>4 && event_time_m<=8) 23 | { 24 | event_hist[event_name,"<= 8"]++; 25 | } 26 | else if(event_time_m>8 && event_time_m<=16) 27 | { 28 | event_hist[event_name,"<=16"]++; 29 | } 30 | else if(event_time_m>16 && event_time_m<=32) 31 | { 32 | event_hist[event_name,"<=32"]++; 33 | } 34 | else if(event_time_m>32) 35 | { 36 | event_hist[event_name,">32"]++; 37 | } 38 | 39 | if($0 ~ "obj#") 40 | { 41 | object_wait[$(NF-1)]+=event_time; 42 | } 43 | } 44 | END { 45 | br=0; 46 | n=asorti(event_hist,event_hist_s); 47 | for(i=1 ; i<=n ; i++ ) { 48 | ev=substr(event_hist_s[i],1,index(event_hist_s[i],"<")-2); 49 | ev1=substr(event_hist_s[i+1],1,index(event_hist_s[i+1],"<")-2); 50 | if(event_cnt[ev]<1) 51 | { 52 | ev=substr(event_hist_s[i],1,index(event_hist_s[i],">")-2); 53 | br=1; 54 | } 55 | else if(ev!=ev1) 56 | { 57 | br=1; 58 | } 59 | print event_hist_s[i] "(ms)\t\t" event_hist[event_hist_s[i]] "\t" event_hist[event_hist_s[i]]/event_cnt[ev]; 60 | if(br==1) 61 | { 62 | print " "; 63 | br=0; 64 | } 65 | 66 | } 67 | 68 | PROCINFO["sorted_in"] = "@val_num_desc"; 69 | 70 | for(event in events) { 71 | print event " elapsed time (us): " events[event]; 72 | } 73 | 74 | 75 | print " "; 76 | for(obj in object_wait) 77 | { 78 | print obj " elapsed time (us): " object_wait[obj]; 79 | } 80 | 81 | 82 | } 83 | -------------------------------------------------------------------------------- /listener_analyzer.py: -------------------------------------------------------------------------------- 1 | import plotly.offline as py 2 | import plotly.graph_objs as go 3 | import sys 4 | import os 5 | import re 6 | from datetime import datetime 7 | from datetime import timedelta 8 | from plotly import tools 9 | 10 | class ListenerLog(object): 11 | def __init__(self, dirname, name_pattern, date_from, date_to, interval=3600, service_filter=None): 12 | self.dirname = dirname 13 | self.name_pattern = name_pattern 14 | 15 | conn_data = {} 16 | df = datetime.strptime(date_from, "%Y%m%d:%H:%M") 17 | dt = datetime.strptime(date_to, "%Y%m%d:%H:%M") 18 | 19 | host_list = {} 20 | 21 | data_x = [] 22 | for h in range(int((dt - df).total_seconds() / interval)): 23 | date_x = (df + timedelta(seconds=h*interval)).strftime("%Y%m%d:%H:%M:%S") 24 | data_x.append(date_x) 25 | conn_data[date_x] = {} 26 | 27 | for fname in os.listdir(self.dirname): 28 | if fname.find(self.name_pattern) >= 0: 29 | listener_log = open(self.dirname + "/" + fname, "r", errors="ignore").readlines() 30 | for log_line in listener_log: 31 | log_fields = log_line.split("*") 32 | 33 | if len(log_fields) > 3 and log_fields[-3].strip() == "establish"\ 34 | and (service_filter is None or log_line.find(service_filter) > 0 ): 35 | date = datetime.strptime(log_fields[0].strip(), "%d-%b-%Y %H:%M:%S") 36 | date_bucket = datetime.fromtimestamp(date.timestamp() - (date.timestamp() % interval)) 37 | 38 | if date <= dt and date >= df: 39 | hostname = log_fields[-4].strip() 40 | hostname = hostname[hostname.find("HOST=")+5:] 41 | hostname = hostname[:hostname.find(")(")] 42 | ds = date_bucket.strftime("%Y%m%d:%H:%M:%S") 43 | 44 | host_list[hostname] = 1 45 | 46 | if conn_data.get(ds): 47 | if conn_data[ds].get(hostname): 48 | conn_data[ds][hostname] += 1 49 | else: 50 | conn_data[ds][hostname] = 1 51 | else: 52 | conn_data[ds] = {} 53 | conn_data[ds][hostname] = 1 54 | 55 | self.conn_data = conn_data 56 | self.dt = dt 57 | self.df = df 58 | self.data_x = data_x 59 | self.host_list = host_list 60 | 61 | def plot(self): 62 | conn_data = self.conn_data 63 | 64 | data_x = self.data_x 65 | data_y = {} 66 | fig = go.Figure() 67 | 68 | for time in self.data_x: 69 | for host in self.host_list: 70 | if not conn_data[time].get(host): 71 | conn_data[time][host] = 0 72 | 73 | for i in data_x: 74 | for j in conn_data.get(i): 75 | data_y.setdefault(j, []) 76 | data_y[j].append(conn_data[i][j]) 77 | 78 | for series in data_y: 79 | fig.add_trace(go.Scatter(x=data_x, 80 | fill="tozeroy", 81 | y=data_y[series], 82 | name=series, 83 | mode='lines+markers', 84 | line=dict(shape='hv'), 85 | )) 86 | 87 | fig['layout'].update(title='Logons to database / hour based on LISTENER logs (Number of IP addresses: ' 88 | + str(len(data_y)) + ')') 89 | 90 | py.plot(fig, filename=self.name_pattern + ".html") 91 | 92 | 93 | 94 | if __name__ == '__main__': 95 | if len(sys.argv) >= 5: 96 | if len(sys.argv) == 5: 97 | lsnr = ListenerLog(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4]) 98 | elif len(sys.argv) == 6: 99 | lsnr = ListenerLog(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4], int(sys.argv[5])) 100 | elif len(sys.argv) == 7: 101 | lsnr = ListenerLog(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4], int(sys.argv[5]), sys.argv[6]) 102 | #print(lsnr.conn_data) 103 | lsnr.plot() 104 | else: 105 | print("This script by Kamil Stawiarski (@ora600pl) is to help you with visualizing data from multiple listener log files") 106 | print("Usage:") 107 | print("python listener_analyzer.py /path/to/logs/ pattern_to_filter_reports_by_name date_from[YYYYMMDD:HH24:MI] " 108 | "date_to[[YYYYMMDD:HH24:MI] {interval default = 3600s} {service name filter}") 109 | print("You have to install plotly first [pip install plotly]\n") 110 | -------------------------------------------------------------------------------- /format_10046_10053.awk: -------------------------------------------------------------------------------- 1 | # Define some starting global variables 2 | BEGIN { 3 | # Number of the cursor for WAIT# from 10046 trace file 4 | cursor_no="start sequence nomatch"; 5 | # Information about closing the cursor in 10046 trace file 6 | cursor_no_close="start sequence nomatch"; 7 | # SQL_ID will found based on 10053 header section 8 | sql_id="start sql id"; 9 | rewinded=0; 10 | } 11 | 12 | # The 10053 header section - determining SQL_ID and printing orignal SQL before transformations - then rewinding the file from the begining to find 10046 info. 13 | /OPTIMIZER INFORMATION/ { 14 | getline nextline; 15 | getline nextline; 16 | getline nextline; 17 | sql_id=substr(nextline,index(nextline,"sql_id="),20); 18 | getline nextline; 19 | print "\nORIGINAL SQL:"; 20 | while(nextline !~ "Legend") 21 | { 22 | print nextline; 23 | getline nextline; 24 | } 25 | } 26 | 27 | # Printing final query after transformation with some basic formating for easier reading 28 | /Final query after transformations:/{ 29 | getline nextline; 30 | print sql_id; 31 | sql_text=nextline; 32 | gsub(/,/,"\n\t,",sql_text); 33 | gsub(/FROM/,"\n\tFROM",sql_text); 34 | gsub(/WHERE/,"\n\t\tWHERE",sql_text); 35 | gsub(/GROUP BY/,"\n\t\tGROUP BY",sql_text); 36 | gsub(/HAVING/,"\n\t\tHAVING",sql_text); 37 | gsub(/ AND /,"\n\t\t AND ",sql_text); 38 | gsub(/ OR /,"\n\t\t OR ",sql_text); 39 | print sql_text; 40 | print " "; 41 | } 42 | 43 | # Printing Plan Table output and outline data from 10053 trace file 44 | /Explain Plan Dump/{ 45 | getline nextline; 46 | while(nextline !~ "Optimizer state dump") 47 | { 48 | print nextline; 49 | getline nextline; 50 | } 51 | } 52 | 53 | # Determining the cursor number in 10046 trace file to check wait events 54 | /PARSING IN CURSOR/ { 55 | if($0 ~ substr(sql_id,8)) 56 | { 57 | cursor_no="WAIT " $4; 58 | cursor_no_close="CLOSE " $4; 59 | cursor_stat = "STAT " $4; 60 | } 61 | else if($0 ~ "dep=0" && $0 ~ "oct=3") 62 | { 63 | cursor_no="WAIT " $4; 64 | cursor_no_close="CLOSE " $4; 65 | sql_id=substr($NF,8,13); 66 | } 67 | } 68 | { 69 | # Filter out *Net* wait events and create histogram in ms - summerize waiting times 70 | if($0 ~ cursor_no && $0 !~ "Net") { 71 | event_part=substr($0,index($0,"'")+1); 72 | event_name=substr(event_part,1,index(event_part,"'")-1); 73 | event_time1=substr($0,index($0,"ela= ")+5); 74 | event_time=substr(event_time1,1,index(event_time1," ")-1); 75 | events[event_name]+=event_time; 76 | event_cnt[event_name]++; 77 | 78 | event_time_m=event_time/1000; 79 | if(event_time_m<=1) 80 | { 81 | event_hist[event_name,"<= 1"]++; 82 | } 83 | else if(event_time_m>1 && event_time_m<=2) 84 | { 85 | event_hist[event_name,"<= 2"]++; 86 | } 87 | else if(event_time_m>2 && event_time_m<=4) 88 | { 89 | event_hist[event_name,"<= 4"]++; 90 | } 91 | else if(event_time_m>4 && event_time_m<=8) 92 | { 93 | event_hist[event_name,"<= 8"]++; 94 | } 95 | else if(event_time_m>8 && event_time_m<=16) 96 | { 97 | event_hist[event_name,"<=16"]++; 98 | } 99 | else if(event_time_m>16 && event_time_m<=32) 100 | { 101 | event_hist[event_name,"<=32"]++; 102 | } 103 | else if(event_time_m>32) 104 | { 105 | event_hist[event_name,">32"]++; 106 | } 107 | 108 | if($0 ~ "obj#") 109 | { 110 | object_wait[$(NF-1)]+=event_time; 111 | } 112 | } 113 | } 114 | # Printing wait event info at cursor close 115 | { 116 | if($0 ~ cursor_no_close || $0 ~ cursor_stat) { 117 | br=0; 118 | n=asorti(event_hist,event_hist_s); 119 | for(i=1 ; i<=n ; i++ ) { 120 | ev=substr(event_hist_s[i],1,index(event_hist_s[i],"<")-2); 121 | ev1=substr(event_hist_s[i+1],1,index(event_hist_s[i+1],"<")-2); 122 | if(length(ev1)<2) 123 | { 124 | ev1=substr(event_hist_s[i+1],1,index(event_hist_s[i+1],">")-2); 125 | } 126 | if(event_cnt[ev]<1) 127 | { 128 | ev=substr(event_hist_s[i],1,index(event_hist_s[i],">")-2); 129 | ev1=substr(event_hist_s[i+1],1,index(event_hist_s[i+1],">")-2); 130 | } 131 | if(ev!=ev1) 132 | { 133 | br=1; 134 | } 135 | if(event_hist[event_hist_s[i]]/event_cnt[ev]<1) 136 | { 137 | print event_hist_s[i] "(ms)\t\t" event_hist[event_hist_s[i]] "\t" event_hist[event_hist_s[i]]/event_cnt[ev]; 138 | } 139 | else 140 | { 141 | br=0; 142 | } 143 | if(br==1) 144 | { 145 | print " "; 146 | br=0; 147 | } 148 | 149 | } 150 | PROCINFO["sorted_in"] = "@val_num_desc"; 151 | for(event in events) { 152 | if(events[event]>0) { 153 | print event " elapsed time (us): " events[event]; 154 | } 155 | } 156 | print " "; 157 | for(obj in object_wait) 158 | { 159 | print obj " elapsed time (us): " object_wait[obj]; 160 | } 161 | cursor_no_close="END of this parsing"; 162 | cursor_no="END of this parsing"; 163 | cursor_stat="END of this parsing"; 164 | delete event_hist; 165 | delete event_hist_s; 166 | delete event_cnt; 167 | delete events; 168 | delete object_wait; 169 | rewinded=0; 170 | print "---------------------------------------------\n"; 171 | } 172 | } 173 | -------------------------------------------------------------------------------- /apud.py: -------------------------------------------------------------------------------- 1 | ### tool by Kamil Stawiarski (@ora600pl www.ora-600.pl) 2 | ### this is very primitive tool, made only for learning - it makes things easier while analyzing redo 3 | ### the tool has been created as support tool for V00D00 - logical replication appliance 4 | import struct, binascii 5 | 6 | class DumpParser(object): 7 | operation_types = {} 8 | operation_types["OP:11.3"]="DELETE" 9 | operation_types["OP:11.5"]="UPDATE" 10 | operation_types["OP:11.2"]="INSERT" 11 | operation_types["OP:11.11"]="INSERT_ARRAY" 12 | operation_types["OP:10.2"]="INSERT Leaf Row" 13 | operation_types["OP:10.4"]="DELETE Leaf Row" 14 | operation_types["OP:10.3"]="PURGE Leaf Row" 15 | operation_types["OP:10.5"]="Restore Leaf during rollback" 16 | operation_types["OP:10.35"]="IOT_UPDATE" 17 | operation_types["OP:5.1"]="UNDO" 18 | operation_types["OP:5.4"]="COMMIT" 19 | operation_types["OP:5.6"]="ROLLBACK SINGLE STATEMENT (not final)" 20 | operation_types["OP:5.11"]="ROLLBACK SINGLE STATEMENT (final)" 21 | operation_types["OP:19.1"]="DIRECT PATH INSERT" 22 | operation_types["OP:26.6"]="LOB" 23 | operation_types["OP:5.2"]="UNDO HEADER" 24 | operation_types["OP:4.1"]="Block cleanout record" 25 | 26 | def __init__(self): 27 | self.redo_records = {} 28 | self.change_vectors = {} 29 | self.object_names = {} 30 | self.registered_xids = [] 31 | 32 | self.version = "12c" 33 | self.offsets = {} 34 | self.offsets["12c"] = {} 35 | self.offsets["12c"]["OP_CODE"]=10 36 | self.offsets["12c"]["OBJD"]=7 37 | self.offsets["12c"]["CLS"]=4 38 | 39 | self.offsets["11g"] = {} 40 | self.offsets["11g"]["OP_CODE"]=9 41 | self.offsets["11g"]["OBJD"]=6 42 | self.offsets["11g"]["CLS"]=3 43 | 44 | def set_version(self,ver): 45 | self.version = ver 46 | 47 | def parse_file(self,tracefile_path, oname): 48 | self.registered_xids = [] 49 | self.redo_records = {} 50 | self.change_vectors = {} 51 | 52 | tracefile = open(tracefile_path,"r") 53 | block_number = 0 54 | offset = 0 55 | sequence = 0 56 | rs_id = " " 57 | xid = " " 58 | operation_type = " -- undefined -- " 59 | for line in tracefile: 60 | if line.startswith("REDO RECORD"): 61 | sequence = int(line.split()[5].split(".")[0][2:],16) 62 | block_number = int(line.split()[5].split(".")[1],16) 63 | offset = int(line.split()[5].split(".")[2],16) 64 | rs_id = line.split()[5] 65 | self.redo_records[sequence,block_number,offset,rs_id] = [] 66 | operation = -1 67 | operation_type = " -- undefined -- " 68 | elif line.startswith("CHANGE #") and line.find("MEDIA RECOVERY MARKER")<0: 69 | try: 70 | op_code = line.split()[self.offsets[self.version]["OP_CODE"]] 71 | object_id = int(line.split()[self.offsets[self.version]["OBJD"]][4:]) 72 | except BaseException as e: 73 | print str(e) 74 | print "are you trying to parse for version " + self.version + "? If no, change it. " \ 75 | "If yes - something is wrong :)" 76 | print line 77 | print "offset: " + str(self.offsets[self.version]["OP_CODE"]) 78 | return 0 79 | 80 | operation_type = DumpParser.operation_types.get(op_code,op_code) 81 | if operation_type == "COMMIT": 82 | xid = line.split()[self.offsets[self.version]["CLS"]][4:].strip() 83 | 84 | object_name = self.object_names.get(object_id,str(object_id)) 85 | self.redo_records[sequence,block_number,offset,rs_id].append([object_name,operation_type,xid]) 86 | operation += 1 87 | 88 | elif (operation_type == "UNDO" or operation_type.startswith("ROLLBACK") 89 | or operation_type == "INITIATE TRANSACTION") and line.find("objd: ")>0: 90 | 91 | try: 92 | object_id = int(line.split()[-3]) 93 | except: 94 | object_id = -1 95 | 96 | object_name = self.object_names.get(object_id,str(object_id).strip()) 97 | change_vectors = len(self.redo_records[sequence,block_number,offset,rs_id]) 98 | self.redo_records[sequence,block_number,offset,rs_id][change_vectors-1][0]=object_name 99 | if object_name == str(oname).strip(): 100 | self.registered_xids.append(self.redo_records[sequence,block_number,offset,rs_id][change_vectors-1][2]) 101 | 102 | elif operation_type == "UNDO" and len(line.split())>0 and line.split()[0].strip()=="xid:": 103 | xid = line.split()[1] 104 | change_vectors = len(self.redo_records[sequence,block_number,offset,rs_id]) 105 | for i in range(change_vectors): 106 | self.redo_records[sequence,block_number,offset,rs_id][i][2]=xid 107 | 108 | elif operation_type == "COMMIT" and line.startswith("ktucm"): 109 | cls = int(self.redo_records[sequence,block_number,offset,rs_id][operation][2]) 110 | xidusn = struct.Struct("2s").unpack(struct.Struct(">H").pack((cls-17)/2+1))[0] 111 | xidslt = line.split()[3][3:].strip() 112 | xidsqn = line.split()[5][2:].strip() 113 | xid = "0x" + binascii.hexlify(xidusn) + "." + xidslt + "." + xidsqn 114 | self.redo_records[sequence,block_number,offset,rs_id][operation][2] = xid 115 | 116 | flg = int(line.split()[11][2:].strip(),16) 117 | if flg == 4 or flg == 20: 118 | self.redo_records[sequence,block_number,offset,rs_id][operation][1] = "COMMIT [ending rollback]" 119 | 120 | tracefile.close() 121 | 122 | 123 | def show_records(self,object_name): 124 | for k in sorted(self.redo_records.keys()): 125 | change_no = 0 126 | record_header = 0 127 | for i in self.redo_records[k]: 128 | if i[0] == object_name and (change_no == 0 or record_header == 0): 129 | print "\nRedo record sequence: {0} block: {1} offset {2} [rs_id: {3}] ".format(str(k[0]), str(k[1]), 130 | str(k[2]), str(k[3])) 131 | print "\t change {0} operation {1} xid = {2}".format(str(change_no+1),i[1],str(i[2])) 132 | record_header = 1 133 | elif i[0] == object_name and change_no > 0: 134 | print "\t change {0} operation {1} xid = {2}".format(str(change_no + 1), i[1], str(i[2])) 135 | elif i[1].startswith("COMMIT") and i[2] in self.registered_xids: 136 | print "{0} for transaction {1} [sequence: {2} block: {3} offset {4} rs_id: {5} ]".format(i[1],i[2], 137 | str(k[0]), 138 | str(k[1]), 139 | str(k[2]), 140 | str(k[3])) 141 | 142 | change_no += 1 143 | 144 | 145 | def connect_to_oracle(self,connect_string): 146 | try: 147 | __import__('imp').find_module('cx_Oracle') 148 | import cx_Oracle 149 | con = cx_Oracle.connect(connect_string) 150 | cur = con.cursor() 151 | cur.execute("select data_object_id, owner || '.' || object_name as oname from dba_objects") 152 | for row in cur: 153 | self.object_names[row[0]] = row[1] 154 | 155 | cur.close() 156 | 157 | con.close() 158 | except ImportError: 159 | print "You have to install cx_Oracle to handle Oracle database. Try #pip install cx_Oracle. " \ 160 | "And setup ENV properly!" 161 | except BaseException as e: 162 | print "Something went wrong: " + str(e) 163 | 164 | 165 | @staticmethod 166 | def help(): 167 | print "parse file /path/to/a/logfile/dump [data_object_id | owner.object_name] " \ 168 | "if you want to parse file based on DATA_OBJECT_ID or OWNER.OBJECT_NAME" 169 | print "get dict user/password@ip:port/service " \ 170 | "if you want to use object_name instead of data_object_id\n" 171 | 172 | print "default supported version is 12c, to change to 11g type: set version 11g" 173 | 174 | print "exit to quit" 175 | print "help to print this" 176 | 177 | 178 | if __name__=='__main__': 179 | dp = DumpParser() 180 | dp.help() 181 | cnt = True 182 | while cnt: 183 | try: 184 | command = raw_input("V00D00 > ").strip() 185 | if command == "exit": 186 | cnt = False 187 | elif command.startswith("parse file"): 188 | dp.parse_file(command.split()[2],command.split()[3]) 189 | dp.show_records(command.split()[3]) 190 | elif command.startswith("get dict"): 191 | dp.connect_to_oracle(command.split()[2]) 192 | elif command == "set version 11g": 193 | dp.set_version("11g") 194 | elif command == "help": 195 | dp.help() 196 | elif len(command)>0: 197 | print "\n\nWhat???" 198 | dp.help() 199 | 200 | 201 | except BaseException as e: 202 | print "You messed up... Or I messed up. Something is messed up" 203 | print str(e) 204 | raise 205 | 206 | -------------------------------------------------------------------------------- /parse_trace_owi/parse_trace_owi.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "log" 5 | "flag" 6 | "strconv" 7 | "os" 8 | "strings" 9 | "path/filepath" 10 | "sync" 11 | "bufio" 12 | "regexp" 13 | "math" 14 | "fmt" 15 | "sort" 16 | "runtime/pprof" 17 | "time" 18 | "encoding/gob" 19 | "bytes" 20 | ) 21 | 22 | var DEBUG bool = false 23 | const layout = "2006-01-02 15:04:05.999" 24 | const layout2 = "2006-01-02T15:04:05.999999" 25 | 26 | func logme(what string) { 27 | if DEBUG { 28 | log.Println(what) 29 | } 30 | } 31 | 32 | func fileExists(filename string) bool { 33 | info, err := os.Stat(filename) 34 | if os.IsNotExist(err) { 35 | return false 36 | } 37 | return !info.IsDir() 38 | } 39 | 40 | 41 | func StdDev(x []int64) float64 { 42 | var sum, mean, sd float64 43 | for _, elem := range x { 44 | sum += float64(elem) 45 | } 46 | mean = sum / float64(len(x)) 47 | for _, elem := range x { 48 | sd += math.Pow(float64(elem)-mean, 2) 49 | } 50 | 51 | sd = math.Sqrt(sd / float64(len(x))) 52 | return sd 53 | } 54 | 55 | type SQLEventStats struct { 56 | Sum float64 57 | Count int64 58 | ElaTimes []int64 59 | PossibleOperations []string 60 | } 61 | 62 | //struct for event data 63 | type EventStats struct { 64 | EventName string 65 | EventClass string 66 | Sum float64 67 | Count int64 68 | Avg float64 69 | StdDev float64 70 | ElaTimes []int64 71 | Worker int 72 | SQLtimes map[string]*SQLEventStats 73 | } 74 | 75 | //calculate StdDev for events 76 | func (es *EventStats) CalcStdDev() { 77 | es.StdDev = StdDev(es.ElaTimes) 78 | } 79 | 80 | type MapEvents map[string]*EventStats 81 | type EventStatsSbSum []EventStats 82 | func (a EventStatsSbSum) Len() int { return len(a) } 83 | func (a EventStatsSbSum) Less(i, j int) bool { return a[j].Sum > a[i].Sum } 84 | func (a EventStatsSbSum) Swap(i, j int) { a[i], a[j] = a[j], a[i] } 85 | 86 | type SQLStat struct { 87 | SQLid string 88 | Ela float64 89 | } 90 | type SQLStats []SQLStat 91 | func (a SQLStats) Len() int { return len(a) } 92 | func (a SQLStats) Less(i, j int) bool { return a[j].Ela > a[i].Ela } 93 | func (a SQLStats) Swap(i, j int) { a[i], a[j] = a[j], a[i] } 94 | 95 | func removeDupString(strSlice []string) []string { 96 | keys := make(map[string]bool) 97 | list := []string{} 98 | for _, entry := range strSlice { 99 | if _, value := keys[entry]; !value { 100 | keys[entry] = true 101 | list = append(list, entry) 102 | } 103 | } 104 | return list 105 | } 106 | 107 | func showStats(events []EventStats, topN *int) { 108 | sort.Sort(EventStatsSbSum(events)) 109 | logme("Events sorted by elapsed time sum") 110 | fmt.Printf("%60s\t\t%s\t\t\t%s\t\t%s\t\t\t%s\t\t%s\n\n", "WAIT EVENT", "ELA(ms)", "COUNT", "AVG(ms)", "STDDEV(ms)", "CLASS") 111 | listLen := len(events) 112 | limit := -1 113 | if *topN > 0 { 114 | limit = listLen - *topN - 1 115 | } 116 | for i, event := range events { 117 | if i > limit { 118 | event.CalcStdDev() 119 | fmt.Printf("%60s\t\t%f\t\t%d\t\t%f\t\t%f\t\t%s\n", event.EventName, event.Sum/1000, event.Count, event.Avg/1000, event.StdDev/1000, event.EventClass) 120 | } 121 | } 122 | 123 | } 124 | 125 | func parseTrace(traceFile string, workerId int, tF time.Time, tT time.Time) MapEvents { 126 | tf, ferr := os.Open(traceFile) 127 | defer tf.Close() 128 | if ferr != nil { 129 | log.Panic(ferr) 130 | } 131 | r := regexp.MustCompile(`[^\s'=]+|'([^']*)'`) 132 | rt := regexp.MustCompile(`^\*\*\* [0-9]{4}-([0-9]{2}-?){2}`) 133 | var eventMap MapEvents 134 | eventMap = make(map[string]*EventStats) 135 | 136 | scanner := bufio.NewScanner(tf) 137 | scanner.Split(bufio.ScanLines) 138 | discoveredTraceDate := false 139 | 140 | cursorToSQLid := make(map[string]string) 141 | type cursorObjKey struct { 142 | objId string 143 | cursorId string 144 | } 145 | cursorObjToOp := make(map[cursorObjKey][]string) 146 | 147 | for scanner.Scan() { 148 | traceLine := scanner.Text() 149 | traceWords := r.FindAllString(traceLine, -1) 150 | 151 | if ti := rt.FindStringIndex(traceLine); ti != nil && !discoveredTraceDate { 152 | var traceTime time.Time 153 | if len(traceWords[1]) == 32 { 154 | traceTime, _ = time.Parse(layout2, traceWords[1][0:26]) 155 | } else { 156 | traceTime, _ = time.Parse(layout, traceLine[4:]) 157 | } 158 | if !(traceTime.After(tF) && traceTime.Before(tT)) { 159 | logme("ignored file: " + traceFile + " with traceTime = " + traceTime.String() + " with params " + tF.String() + " " + tT.String()) 160 | return nil 161 | } 162 | discoveredTraceDate = true 163 | } 164 | 165 | if strings.HasPrefix(traceLine, "WAIT #") { 166 | eventName := traceWords[3] 167 | eventEla, _ := strconv.Atoi(traceWords[5]) 168 | eventClassName := GetClass(eventName) 169 | 170 | if eventClassName != "Idle" && eventClassName != "Other" { 171 | if _, ok := eventMap[eventName]; !ok { 172 | eventMap[eventName] = &EventStats{EventName: "", 173 | EventClass: "", 174 | Sum: 0, 175 | Count: 0, 176 | Avg: 0, 177 | StdDev: 0, 178 | Worker: -1, 179 | SQLtimes: make(map[string]*SQLEventStats), 180 | } 181 | } 182 | eventMap[eventName].EventName = eventName 183 | eventMap[eventName].Sum += float64(eventEla) 184 | eventMap[eventName].Count += 1 185 | eventMap[eventName].Avg = eventMap[eventName].Sum / float64(eventMap[eventName].Count) 186 | eventMap[eventName].ElaTimes = append(eventMap[eventName].ElaTimes, int64(eventEla)) 187 | eventMap[eventName].Worker = workerId 188 | eventMap[eventName].EventClass = eventClassName 189 | 190 | cursor_id := traceWords[1][0:len(traceWords[1])-1] 191 | if _, ok := cursorToSQLid[cursor_id]; ok { 192 | if _, ok2 := eventMap[eventName].SQLtimes[cursorToSQLid[cursor_id]]; !ok2 { 193 | eventMap[eventName].SQLtimes[cursorToSQLid[cursor_id]] = &SQLEventStats{Sum: 0, Count: 0} 194 | } 195 | eventMap[eventName].SQLtimes[cursorToSQLid[cursor_id]].Sum += float64(eventEla) 196 | eventMap[eventName].SQLtimes[cursorToSQLid[cursor_id]].Count += 1 197 | eventMap[eventName].SQLtimes[cursorToSQLid[cursor_id]].ElaTimes = append(eventMap[eventName].SQLtimes[cursorToSQLid[cursor_id]].ElaTimes, int64(eventEla)) 198 | logme("SQLID for cursor: " + cursor_id + " " + cursorToSQLid[cursor_id] + " " + eventName + " " + traceFile) 199 | if strings.Index(traceLine, "obj#=") > 0 { 200 | objId := traceWords[len(traceWords)-3] 201 | logme("Looking for operation map for objd: " + objId + " sqlid: " + cursorToSQLid[cursor_id]) 202 | if v, ok3 := cursorObjToOp[cursorObjKey{objId, cursor_id}]; ok3 { 203 | logme("Found: " + v[0]) 204 | eventMap[eventName].SQLtimes[cursorToSQLid[cursor_id]].PossibleOperations = append(eventMap[eventName].SQLtimes[cursorToSQLid[cursor_id]].PossibleOperations, v...) 205 | } else { 206 | logme("Not found - creating a placeholder to fill later") 207 | eventMap[eventName].SQLtimes[cursorToSQLid[cursor_id]].PossibleOperations = append(eventMap[eventName].SQLtimes[cursorToSQLid[cursor_id]].PossibleOperations, objId + " " + cursor_id) 208 | } 209 | } 210 | } 211 | } 212 | } else if strings.HasPrefix(traceLine, "PARSING IN CURSOR") { 213 | cursor_id := traceWords[3] 214 | sql_id := traceWords[len(traceWords)-1] 215 | logme("SQLID for cursor: " + cursor_id + " " + sql_id) 216 | cursorToSQLid[cursor_id] = sql_id 217 | } else if strings.HasPrefix(traceLine, "STAT #") { 218 | cursor_id := traceWords[1] 219 | objId :=traceWords[11] 220 | foundElem := false 221 | for _, opname := range(cursorObjToOp[cursorObjKey{objId, cursor_id}]) { 222 | if opname == traceWords[len(traceWords)-1] { 223 | foundElem = true 224 | } 225 | } 226 | if !foundElem { 227 | cursorObjToOp[cursorObjKey{objId, cursor_id}] = append(cursorObjToOp[cursorObjKey{objId, cursor_id}], traceWords[len(traceWords)-1]) 228 | } 229 | logme("OP for cursor: " + cursor_id + " obj: " + objId + " op: " + traceWords[len(traceWords)-1] + " sqlid: " + cursorToSQLid[cursor_id]) 230 | for _, ev := range(eventMap) { 231 | if sqlstat, sqlidOk := ev.SQLtimes[cursorToSQLid[cursor_id]]; sqlidOk { 232 | for i, op := range(sqlstat.PossibleOperations) { 233 | if objId + " " + cursor_id == op { 234 | if len(cursorObjToOp[cursorObjKey{objId, cursor_id}]) == 1 { 235 | sqlstat.PossibleOperations[i] = cursorObjToOp[cursorObjKey{objId, cursor_id}][0] 236 | } else if len(cursorObjToOp[cursorObjKey{objId, cursor_id}]) > 1 { 237 | sqlstat.PossibleOperations[i] = cursorObjToOp[cursorObjKey{objId, cursor_id}][0] 238 | sqlstat.PossibleOperations = append(sqlstat.PossibleOperations, cursorObjToOp[cursorObjKey{objId, cursor_id}][1:]...) 239 | } 240 | } 241 | } 242 | } 243 | } 244 | } 245 | } 246 | return eventMap 247 | } 248 | 249 | 250 | //used for profiling CPU 251 | var cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file") 252 | 253 | 254 | func main() { 255 | InitClassMap() 256 | tB := time.Now() 257 | debug := flag.String("d", "false", "debug") 258 | searchDir := flag.String("s", "", "where to search for trace files") 259 | parallel := flag.Int("p", 1, "parallel degree") 260 | timeFrom_s := flag.String("tf", "2020-01-01 00:00:00.100", "time from") 261 | timeTo_s := flag.String("tt", "2020-01-02 00:00:00.100", "time to") 262 | eventName := flag.String("event", "", "Display SQLids for specified event") 263 | sqlId := flag.String("sqlid","", "Display wait events for sqlid") 264 | topN := flag.Int("top", 0, "Only TOP n elements") 265 | 266 | flag.Parse() 267 | 268 | tF, _ := time.Parse(layout, *timeFrom_s) 269 | tT, _ := time.Parse(layout, *timeTo_s) 270 | 271 | saveFileName := *timeFrom_s + "_" + *timeTo_s 272 | saveFileName = strings.ReplaceAll(saveFileName, ":", "") 273 | saveFileName = strings.ReplaceAll(saveFileName, " ", "") 274 | saveFileName = strings.ReplaceAll(saveFileName, "-", "") 275 | saveFileName = strings.ReplaceAll(saveFileName, ".", "") 276 | saveFileName = saveFileName + ".owisave" 277 | 278 | if *debug == "true" { 279 | DEBUG = true 280 | } 281 | 282 | if *searchDir == "" { 283 | flag.PrintDefaults() 284 | os.Exit(1) 285 | } 286 | 287 | //used for profiling CPU 288 | if *cpuprofile != "" { 289 | f, err := os.Create(*cpuprofile) 290 | if err != nil { 291 | log.Fatal(err) 292 | } 293 | pprof.StartCPUProfile(f) 294 | defer pprof.StopCPUProfile() 295 | } 296 | /////////////////////////// 297 | 298 | 299 | logme("starting the parse job") 300 | 301 | var traceFiles []string 302 | root := *searchDir 303 | 304 | var me MapEvents 305 | me = make(map[string]*EventStats) 306 | 307 | if !fileExists(saveFileName) { 308 | //collect information about all trace files in a search directory 309 | ferr := filepath.Walk(root, func(path string, info os.FileInfo, err error) error { 310 | if err != nil { 311 | log.Panic(err) 312 | } 313 | if err == nil && !info.IsDir() && strings.HasSuffix(info.Name(), ".trc") { 314 | traceFiles = append(traceFiles, path) 315 | } 316 | return nil 317 | }) 318 | 319 | if ferr != nil { 320 | log.Panic(ferr) 321 | } 322 | 323 | logme("amount of files is: " + strconv.Itoa(len(traceFiles))) 324 | logme("parallel degree will be: " + strconv.Itoa(*parallel)) 325 | 326 | var wg sync.WaitGroup 327 | tracefileChannel := make(chan string, len(traceFiles)) 328 | logme("created tracefileChannel and now starting to fill it with file names") 329 | for i:=0; i 0 { 442 | limit = listLen - *topN - 1 443 | } 444 | for i, s := range(sqlTimes) { 445 | if i > limit { 446 | fmt.Printf("%s\t\t%f\n", s.SQLid, s.Ela/1000) 447 | } 448 | sqlCnt += 1 449 | } 450 | fmt.Printf("It was %f percent out of all SQLs - %d out of %d\n", float64(sqlCnt)/float64(len(sqlIDsEla))*100, sqlCnt, len(sqlIDsEla)) 451 | 452 | } else if *sqlId != "" && *eventName == "" { 453 | fmt.Println("Wait events for this SQLid") 454 | var events []EventStats 455 | for _, eventStat := range(me) { 456 | if stat, ok := eventStat.SQLtimes[*sqlId]; ok { 457 | eventStat.Sum = stat.Sum 458 | eventStat.Count = stat.Count 459 | eventStat.Avg = stat.Sum / float64(stat.Count) 460 | eventStat.ElaTimes = stat.ElaTimes 461 | events = append(events, *eventStat) 462 | } 463 | } 464 | showStats(events, topN) 465 | } else if *sqlId != "" && *eventName != "" { 466 | fmt.Println("Possible operations for wait event " + *eventName + " and SQLID " + *sqlId) 467 | for _, v := range(me[*eventName].SQLtimes[*sqlId].PossibleOperations) { 468 | fmt.Println(v) 469 | } 470 | } else { 471 | var events []EventStats 472 | for _, ev := range(me) { 473 | events = append(events, *ev) 474 | } 475 | showStats(events, topN) 476 | } 477 | fmt.Println("Everythong took: " + fmt.Sprintf("%f", time.Now().Sub(tB).Seconds()*1000) + " ms") 478 | } 479 | 480 | -------------------------------------------------------------------------------- /parse_trace_owi/eventclass.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | var eventClass map[string] string 4 | 5 | func InitClassMap() { 6 | eventClass = make(map[string] string) 7 | eventClass["'null event'"]="Other" 8 | eventClass["'logout restrictor'"]="Concurrency" 9 | eventClass["'VKTM Logical Idle Wait'"]="Idle" 10 | eventClass["'VKTM Init Wait for GSGA'"]="Idle" 11 | eventClass["'IORM Scheduler Slave Idle Wait'"]="Idle" 12 | eventClass["'acknowledge over PGA limit'"]="Scheduler" 13 | eventClass["'Parameter File I/O'"]="User I/O" 14 | eventClass["'rdbms ipc message'"]="Idle" 15 | eventClass["'remote db operation'"]="Network" 16 | eventClass["'remote db file read'"]="Network" 17 | eventClass["'remote db file write'"]="Network" 18 | eventClass["'io done'"]="System I/O" 19 | eventClass["'i/o slave wait'"]="Idle" 20 | eventClass["'RMAN Disk slave I/O'"]="System I/O" 21 | eventClass["'RMAN Tape slave I/O'"]="System I/O" 22 | eventClass["'DBWR slave I/O'"]="System I/O" 23 | eventClass["'LGWR slave I/O'"]="System I/O" 24 | eventClass["'Archiver slave I/O'"]="System I/O" 25 | eventClass["'Disk file operations I/O'"]="User I/O" 26 | eventClass["'Disk file I/O Calibration'"]="User I/O" 27 | eventClass["'Disk file Mirror Read'"]="User I/O" 28 | eventClass["'Disk file Mirror/Media Repair Write'"]="User I/O" 29 | eventClass["'direct path sync'"]="User I/O" 30 | eventClass["'Clonedb bitmap file write'"]="System I/O" 31 | eventClass["'Datapump dump file I/O'"]="User I/O" 32 | eventClass["'dbms_file_transfer I/O'"]="User I/O" 33 | eventClass["'DG Broker configuration file I/O'"]="User I/O" 34 | eventClass["'Data file init write'"]="User I/O" 35 | eventClass["'Log file init write'"]="User I/O" 36 | eventClass["'Log archive I/O'"]="System I/O" 37 | eventClass["'RMAN backup & recovery I/O'"]="System I/O" 38 | eventClass["'RMAN lost write reread'"]="System I/O" 39 | eventClass["'Standby redo I/O'"]="System I/O" 40 | eventClass["'Network file transfer'"]="System I/O" 41 | eventClass["'Pluggable Database file copy'"]="User I/O" 42 | eventClass["'File Copy'"]="User I/O" 43 | eventClass["'Backup: MML initialization'"]="Administrative" 44 | eventClass["'Backup: MML v1 open backup piece'"]="Administrative" 45 | eventClass["'Backup: MML v1 read backup piece'"]="Administrative" 46 | eventClass["'Backup: MML v1 write backup piece'"]="Administrative" 47 | eventClass["'Backup: MML v1 close backup piece'"]="Administrative" 48 | eventClass["'Backup: MML v1 query backup piece'"]="Administrative" 49 | eventClass["'Backup: MML v1 delete backup piece'"]="Administrative" 50 | eventClass["'Backup: MML create a backup piece'"]="Administrative" 51 | eventClass["'Backup: MML commit backup piece'"]="Administrative" 52 | eventClass["'Backup: MML command to channel'"]="Administrative" 53 | eventClass["'Backup: MML shutdown'"]="Administrative" 54 | eventClass["'Backup: MML obtain textual error'"]="Administrative" 55 | eventClass["'Backup: MML query backup piece'"]="Administrative" 56 | eventClass["'Backup: MML extended initialization'"]="Administrative" 57 | eventClass["'Backup: MML read backup piece'"]="Administrative" 58 | eventClass["'Backup: MML delete backup piece'"]="Administrative" 59 | eventClass["'Backup: MML restore backup piece'"]="Administrative" 60 | eventClass["'Backup: MML write backup piece'"]="Administrative" 61 | eventClass["'Backup: MML proxy initialize backup'"]="Administrative" 62 | eventClass["'Backup: MML proxy cancel'"]="Administrative" 63 | eventClass["'Backup: MML proxy commit backup piece'"]="Administrative" 64 | eventClass["'Backup: MML proxy session end'"]="Administrative" 65 | eventClass["'Backup: MML datafile proxy backup?'"]="Administrative" 66 | eventClass["'Backup: MML datafile proxy restore?'"]="Administrative" 67 | eventClass["'Backup: MML proxy initialize restore'"]="Administrative" 68 | eventClass["'Backup: MML proxy start data movement'"]="Administrative" 69 | eventClass["'Backup: MML data movement done?'"]="Administrative" 70 | eventClass["'Backup: MML proxy prepare to start'"]="Administrative" 71 | eventClass["'Backup: MML obtain a direct buffer'"]="Administrative" 72 | eventClass["'Backup: MML release a direct buffer'"]="Administrative" 73 | eventClass["'Backup: MML get base address'"]="Administrative" 74 | eventClass["'Backup: MML query for direct buffers'"]="Administrative" 75 | eventClass["'OFS Receive Queue'"]="Idle" 76 | eventClass["'OFS operation completion'"]="Administrative" 77 | eventClass["'OFS idle'"]="Idle" 78 | eventClass["'VKRM Idle'"]="Idle" 79 | eventClass["'resmgr: redo throttle'"]="Scheduler" 80 | eventClass["'wait for unread message on broadcast channel'"]="Idle" 81 | eventClass["'wait for unread message on multiple broadcast channels'"]="Idle" 82 | eventClass["'class slave wait'"]="Idle" 83 | eventClass["'RMA: IPC0 completion sync'"]="Idle" 84 | eventClass["'IPC group service call'"]="Network" 85 | eventClass["'PING'"]="Idle" 86 | eventClass["'Service operation completion'"]="Cluster" 87 | eventClass["'service monitor: inst recovery completion'"]="Cluster" 88 | eventClass["'watchdog main loop'"]="Idle" 89 | eventClass["'process in prespawned state'"]="Idle" 90 | eventClass["'BA: Performance API'"]="Administrative" 91 | eventClass["'File Repopulation Write'"]="System I/O" 92 | eventClass["'pmon timer'"]="Idle" 93 | eventClass["'pman timer'"]="Idle" 94 | eventClass["'latch: MGA shared context root latch'"]="Concurrency" 95 | eventClass["'latch: MGA shared context latch'"]="Concurrency" 96 | eventClass["'latch: MGA heap latch'"]="Concurrency" 97 | eventClass["'latch: MGA pid alloc latch'"]="Concurrency" 98 | eventClass["'latch: MGA asr alloc latch'"]="Concurrency" 99 | eventClass["'DNFS disp IO slave idle'"]="Idle" 100 | eventClass["'DIAG idle wait'"]="Idle" 101 | eventClass["'ges remote message'"]="Idle" 102 | eventClass["'enq: RI - Reader Farm SQL Isolation'"]="Concurrency" 103 | eventClass["'SCM slave idle'"]="Idle" 104 | eventClass["'LMS CR slave timer'"]="Idle" 105 | eventClass["'gcs remote message'"]="Idle" 106 | eventClass["'gcs yield cpu'"]="Idle" 107 | eventClass["'heartbeat monitor sleep'"]="Idle" 108 | eventClass["'GCR sleep'"]="Idle" 109 | eventClass["'PBR logfile IO'"]="System I/O" 110 | eventClass["'PBR logfile block write'"]="System I/O" 111 | eventClass["'SGA: MMAN sleep for component shrink'"]="Idle" 112 | eventClass["'retry contact SCN lock master'"]="Cluster" 113 | eventClass["'control file sequential read'"]="System I/O" 114 | eventClass["'control file single write'"]="System I/O" 115 | eventClass["'control file parallel write'"]="System I/O" 116 | eventClass["'control file backup creation'"]="Administrative" 117 | eventClass["'Shared IO Pool Memory'"]="Concurrency" 118 | eventClass["'Shared IO Pool IO Completion'"]="User I/O" 119 | eventClass["'enq: PW - flush prewarm buffers'"]="Application" 120 | eventClass["'latch: cache buffers chains'"]="Concurrency" 121 | eventClass["'free buffer waits'"]="Configuration" 122 | eventClass["'local write wait'"]="User I/O" 123 | eventClass["'checkpoint completed'"]="Configuration" 124 | eventClass["'write complete waits'"]="Configuration" 125 | eventClass["'write complete waits: flash cache'"]="Configuration" 126 | eventClass["'buffer read retry'"]="User I/O" 127 | eventClass["'buffer busy waits'"]="Concurrency" 128 | eventClass["'gc buffer busy acquire'"]="Cluster" 129 | eventClass["'gc buffer busy release'"]="Cluster" 130 | eventClass["'read by other session'"]="User I/O" 131 | eventClass["'multiple dbwriter suspend/resume for file offline'"]="Administrative" 132 | eventClass["'recovery read'"]="System I/O" 133 | eventClass["'pi renounce write complete'"]="Cluster" 134 | eventClass["'db flash cache single block physical read'"]="User I/O" 135 | eventClass["'db flash cache multiblock physical read'"]="User I/O" 136 | eventClass["'db flash cache write'"]="User I/O" 137 | eventClass["'db flash cache invalidate wait'"]="Concurrency" 138 | eventClass["'db flash cache dynamic disabling wait'"]="Administrative" 139 | eventClass["'remote log force - commit'"]="Commit" 140 | eventClass["'remote log force - buffer update'"]="Cluster" 141 | eventClass["'remote log force - buffer read'"]="Cluster" 142 | eventClass["'remote log force - SCN range'"]="Cluster" 143 | eventClass["'remote log force - session cleanout'"]="Cluster" 144 | eventClass["'DBWR timer'"]="Idle" 145 | eventClass["'enq: RO - contention'"]="Application" 146 | eventClass["'enq: RO - fast object reuse'"]="Application" 147 | eventClass["'enq: KO - fast object checkpoint'"]="Application" 148 | eventClass["'Data Guard network buffer stall reap'"]="Network" 149 | eventClass["'Data Guard: Gap Manager'"]="Idle" 150 | eventClass["'Data Guard: controlfile update'"]="Idle" 151 | eventClass["'MRP redo arrival'"]="Idle" 152 | eventClass["'RFS sequential i/o'"]="System I/O" 153 | eventClass["'RFS random i/o'"]="System I/O" 154 | eventClass["'RFS write'"]="System I/O" 155 | eventClass["'Data Guard: Timer'"]="Idle" 156 | eventClass["'ARCH wait for net re-connect'"]="Network" 157 | eventClass["'ARCH wait for netserver start'"]="Network" 158 | eventClass["'LNS wait on LGWR'"]="Network" 159 | eventClass["'LGWR wait on LNS'"]="Network" 160 | eventClass["'ARCH wait for netserver init 2'"]="Network" 161 | eventClass["'ARCH wait for flow-control'"]="Network" 162 | eventClass["'ARCH wait for netserver detach'"]="Network" 163 | eventClass["'LNS ASYNC archive log'"]="Idle" 164 | eventClass["'LNS ASYNC dest activation'"]="Idle" 165 | eventClass["'LNS ASYNC end of log'"]="Idle" 166 | eventClass["'log file sequential read'"]="System I/O" 167 | eventClass["'log file single write'"]="System I/O" 168 | eventClass["'log file parallel write'"]="System I/O" 169 | eventClass["'log file pmem persist write'"]="System I/O" 170 | eventClass["'log file pmem persist read'"]="System I/O" 171 | eventClass["'latch: redo writing'"]="Configuration" 172 | eventClass["'latch: redo copy'"]="Configuration" 173 | eventClass["'log buffer space'"]="Configuration" 174 | eventClass["'log file switch (checkpoint incomplete)'"]="Configuration" 175 | eventClass["'log file switch (private strand flush incomplete)'"]="Configuration" 176 | eventClass["'log file switch (archiving needed)'"]="Configuration" 177 | eventClass["'switch logfile command'"]="Administrative" 178 | eventClass["'log file switch completion'"]="Configuration" 179 | eventClass["'log file sync'"]="Commit" 180 | eventClass["'log file sync: SCN ordering'"]="Concurrency" 181 | eventClass["'simulated log write delay'"]="Idle" 182 | eventClass["'heartbeat redo informer'"]="Idle" 183 | eventClass["'LGWR real time apply sync'"]="Idle" 184 | eventClass["'LGWR worker group idle'"]="Idle" 185 | eventClass["'remote log force - log switch/recovery'"]="Cluster" 186 | eventClass["'db file sequential read'"]="User I/O" 187 | eventClass["'db file scattered read'"]="User I/O" 188 | eventClass["'db file single write'"]="User I/O" 189 | eventClass["'db file parallel write'"]="System I/O" 190 | eventClass["'db file async I/O submit'"]="System I/O" 191 | eventClass["'db file parallel read'"]="User I/O" 192 | eventClass["'enq: MV - datafile move'"]="Administrative" 193 | eventClass["'gc current request'"]="Cluster" 194 | eventClass["'gc cr request'"]="Cluster" 195 | eventClass["'gc cr disk request'"]="Cluster" 196 | eventClass["'gc cr multi block request'"]="Cluster" 197 | eventClass["'gc cr multi block mixed'"]="Cluster" 198 | eventClass["'gc cr multi block grant'"]="Cluster" 199 | eventClass["'gc current multi block request'"]="Cluster" 200 | eventClass["'gc block recovery request'"]="Cluster" 201 | eventClass["'gc imc multi block request'"]="Cluster" 202 | eventClass["'gc imc multi block quiesce'"]="Cluster" 203 | eventClass["'gc cr block remote read'"]="Cluster" 204 | eventClass["'gc cr block 2-way'"]="Cluster" 205 | eventClass["'gc cr block 3-way'"]="Cluster" 206 | eventClass["'gc cr block busy'"]="Cluster" 207 | eventClass["'gc cr block congested'"]="Cluster" 208 | eventClass["'gc cr failure'"]="Cluster" 209 | eventClass["'gc cr block lost'"]="Cluster" 210 | eventClass["'gc current block 2-way'"]="Cluster" 211 | eventClass["'gc current block 3-way'"]="Cluster" 212 | eventClass["'gc current block busy'"]="Cluster" 213 | eventClass["'gc current block congested'"]="Cluster" 214 | eventClass["'gc current retry'"]="Cluster" 215 | eventClass["'gc current block lost'"]="Cluster" 216 | eventClass["'gc current split'"]="Cluster" 217 | eventClass["'gc cr grant 2-way'"]="Cluster" 218 | eventClass["'gc cr grant 3-way'"]="Cluster" 219 | eventClass["'gc cr grant busy'"]="Cluster" 220 | eventClass["'gc cr grant congested'"]="Cluster" 221 | eventClass["'gc cr disk read'"]="Cluster" 222 | eventClass["'gc cr grant ka'"]="Cluster" 223 | eventClass["'gc cr grant cluster flash cache read'"]="Cluster" 224 | eventClass["'gc cr cluster flash cache read'"]="Cluster" 225 | eventClass["'gc cr flash cache copy'"]="Cluster" 226 | eventClass["'gc cr grant read-mostly invalidation'"]="Cluster" 227 | eventClass["'gc cr grant read-only instance invalidation'"]="Cluster" 228 | eventClass["'gc current grant 2-way'"]="Cluster" 229 | eventClass["'gc current grant 3-way'"]="Cluster" 230 | eventClass["'gc current grant busy'"]="Cluster" 231 | eventClass["'gc current grant congested'"]="Cluster" 232 | eventClass["'gc current grant ka'"]="Cluster" 233 | eventClass["'gc current grant cluster flash cache read'"]="Cluster" 234 | eventClass["'gc current grant read-mostly invalidation'"]="Cluster" 235 | eventClass["'gc current grant read-only instance invalidation'"]="Cluster" 236 | eventClass["'gc transaction table'"]="Cluster" 237 | eventClass["'gc index operation'"]="Cluster" 238 | eventClass["'gc freelist'"]="Cluster" 239 | eventClass["'gc remaster'"]="Cluster" 240 | eventClass["'gc quiesce'"]="Cluster" 241 | eventClass["'gc recovery'"]="Cluster" 242 | eventClass["'gc flushed buffer'"]="Cluster" 243 | eventClass["'gc send complete'"]="Cluster" 244 | eventClass["'gc current cancel'"]="Cluster" 245 | eventClass["'gc cr cancel'"]="Cluster" 246 | eventClass["'gc assume'"]="Cluster" 247 | eventClass["'gc current index split'"]="Cluster" 248 | eventClass["'gc domain validation'"]="Cluster" 249 | eventClass["'gc recovery free'"]="Cluster" 250 | eventClass["'gc recovery quiesce'"]="Cluster" 251 | eventClass["'gc claim'"]="Cluster" 252 | eventClass["'gc cancel retry'"]="Cluster" 253 | eventClass["'direct path read'"]="User I/O" 254 | eventClass["'direct path read temp'"]="User I/O" 255 | eventClass["'direct path write'"]="User I/O" 256 | eventClass["'direct path write temp'"]="User I/O" 257 | eventClass["'datafile pre-create'"]="Administrative" 258 | eventClass["'parallel recovery slave idle wait'"]="Idle" 259 | eventClass["'Backup Appliance waiting for work'"]="Idle" 260 | eventClass["'Backup Appliance waiting restore start'"]="Idle" 261 | eventClass["'Backup Appliance Surrogate wait'"]="Idle" 262 | eventClass["'Backup Appliance Servlet wait'"]="Idle" 263 | eventClass["'Backup Appliance Comm SGA setup wait'"]="Idle" 264 | eventClass["'LogMiner builder: idle'"]="Idle" 265 | eventClass["'LogMiner builder: memory'"]="Queueing" 266 | eventClass["'LogMiner builder: DDL'"]="Queueing" 267 | eventClass["'LogMiner builder: branch'"]="Idle" 268 | eventClass["'LogMiner preparer: idle'"]="Idle" 269 | eventClass["'LogMiner preparer: memory'"]="Queueing" 270 | eventClass["'LogMiner reader: buffer'"]="Queueing" 271 | eventClass["'LogMiner reader: log (idle)'"]="Idle" 272 | eventClass["'LogMiner reader: redo (idle)'"]="Idle" 273 | eventClass["'LogMiner merger: idle'"]="Idle" 274 | eventClass["'LogMiner client: transaction'"]="Idle" 275 | eventClass["'LogMiner: other'"]="Idle" 276 | eventClass["'LogMiner: activate'"]="Idle" 277 | eventClass["'LogMiner: reset'"]="Idle" 278 | eventClass["'LogMiner: find session'"]="Idle" 279 | eventClass["'LogMiner: internal'"]="Idle" 280 | eventClass["'Logical Standby Apply Delay'"]="Idle" 281 | eventClass["'wait for possible quiesce finish'"]="Administrative" 282 | eventClass["'parallel recovery coordinator waits for slave cleanup'"]="Idle" 283 | eventClass["'flashback log file write'"]="System I/O" 284 | eventClass["'flashback log file read'"]="System I/O" 285 | eventClass["'flashback buf free by RVWR'"]="Configuration" 286 | eventClass["'flashback log file sync'"]="User I/O" 287 | eventClass["'parallel recovery coordinator idle wait'"]="Idle" 288 | eventClass["'parallel recovery control message reply'"]="Idle" 289 | eventClass["'cell smart table scan'"]="User I/O" 290 | eventClass["'cell smart index scan'"]="User I/O" 291 | eventClass["'cell external table smart scan'"]="User I/O" 292 | eventClass["'cell statistics gather'"]="User I/O" 293 | eventClass["'cell smart incremental backup'"]="System I/O" 294 | eventClass["'cell smart file creation'"]="User I/O" 295 | eventClass["'cell smart restore from backup'"]="System I/O" 296 | eventClass["'parallel recovery slave next change'"]="Idle" 297 | eventClass["'concurrent I/O completion'"]="Administrative" 298 | eventClass["'datafile copy range completion'"]="Administrative" 299 | eventClass["'nologging fetch slave idle'"]="Idle" 300 | eventClass["'Nologging standby progress'"]="Commit" 301 | eventClass["'nologging standby txn commit'"]="Commit" 302 | eventClass["'nologging range consumption list'"]="Configuration" 303 | eventClass["'recovery sender idle'"]="Idle" 304 | eventClass["'recovery receiver idle'"]="Idle" 305 | eventClass["'recovery coordinator idle'"]="Idle" 306 | eventClass["'recovery logmerger idle'"]="Idle" 307 | eventClass["'block compare coord process idle'"]="Idle" 308 | eventClass["'enq: TM - contention'"]="Application" 309 | eventClass["'enq: ST - contention'"]="Configuration" 310 | eventClass["'undo segment extension'"]="Configuration" 311 | eventClass["'undo segment tx slot'"]="Configuration" 312 | eventClass["'switch undo - offline'"]="Administrative" 313 | eventClass["'alter rbs offline'"]="Administrative" 314 | eventClass["'enq: TX - row lock contention'"]="Application" 315 | eventClass["'enq: TX - allocate ITL entry'"]="Configuration" 316 | eventClass["'enq: TX - index contention'"]="Concurrency" 317 | eventClass["'enq: TW - contention'"]="Administrative" 318 | eventClass["'PX Deq: Txn Recovery Start'"]="Idle" 319 | eventClass["'PX Deq: Txn Recovery Reply'"]="Idle" 320 | eventClass["'latch: Undo Hint Latch'"]="Concurrency" 321 | eventClass["'statement suspended, wait error to be cleared'"]="Configuration" 322 | eventClass["'latch: In memory undo latch'"]="Concurrency" 323 | eventClass["'latch: MQL Tracking Latch'"]="Concurrency" 324 | eventClass["'fbar timer'"]="Idle" 325 | eventClass["'Archive Manager file transfer I/O'"]="User I/O" 326 | eventClass["'SecureFile log buffer'"]="Configuration" 327 | eventClass["'IM buffer busy'"]="Concurrency" 328 | eventClass["'IM buffer busy TXN'"]="Concurrency" 329 | eventClass["'IM buffer busy SHR'"]="Concurrency" 330 | eventClass["'securefile chain update'"]="Concurrency" 331 | eventClass["'enq: HW - contention'"]="Configuration" 332 | eventClass["'enq: BE - Critical Block Allocation'"]="Concurrency" 333 | eventClass["'enq: SS - contention'"]="Configuration" 334 | eventClass["'sort segment request'"]="Configuration" 335 | eventClass["'smon timer'"]="Idle" 336 | eventClass["'PX Deq: Metadata Update'"]="Idle" 337 | eventClass["'Space Manager: slave idle wait'"]="Idle" 338 | eventClass["'enq: SQ - contention'"]="Configuration" 339 | eventClass["'enq: SV - contention'"]="Configuration" 340 | eventClass["'PX Deq: Index Merge Reply'"]="Idle" 341 | eventClass["'PX Deq: Index Merge Execute'"]="Idle" 342 | eventClass["'PX Deq: Index Merge Close'"]="Idle" 343 | eventClass["'enq: HV - contention'"]="Concurrency" 344 | eventClass["'PX Deq: kdcph_mai'"]="Idle" 345 | eventClass["'PX Deq: kdcphc_ack'"]="Idle" 346 | eventClass["'index (re)build online start'"]="Administrative" 347 | eventClass["'index (re)build online cleanup'"]="Administrative" 348 | eventClass["'index (re)build online merge'"]="Administrative" 349 | eventClass["'index (re)build lock or pin object'"]="Administrative" 350 | eventClass["'securefile direct-read completion'"]="User I/O" 351 | eventClass["'securefile direct-write completion'"]="User I/O" 352 | eventClass["'SecureFile mutex'"]="Concurrency" 353 | eventClass["'enq: WG - lock fso'"]="Concurrency" 354 | eventClass["'imco timer'"]="Idle" 355 | eventClass["'Inmemory Populate: get loadscn'"]="Concurrency" 356 | eventClass["'IMFS defer writes scheduler'"]="Idle" 357 | eventClass["'memoptimize write buffer get'"]="Configuration" 358 | eventClass["'memoptimize write drain idle'"]="Idle" 359 | eventClass["'latch: row cache objects'"]="Concurrency" 360 | eventClass["'row cache mutex'"]="Concurrency" 361 | eventClass["'row cache lock'"]="Concurrency" 362 | eventClass["'row cache read'"]="Concurrency" 363 | eventClass["'libcache interrupt action by LCK'"]="Concurrency" 364 | eventClass["'enq: IV - cross instance invalidation'"]="Concurrency" 365 | eventClass["'cursor: mutex X'"]="Concurrency" 366 | eventClass["'cursor: mutex S'"]="Concurrency" 367 | eventClass["'cursor: pin X'"]="Concurrency" 368 | eventClass["'cursor: pin S'"]="Concurrency" 369 | eventClass["'cursor: pin S wait on X'"]="Concurrency" 370 | eventClass["'enq: CB - role operation'"]="Concurrency" 371 | eventClass["'Global transaction acquire instance locks'"]="Configuration" 372 | eventClass["'enq: BB - 2PC across RAC instances'"]="Commit" 373 | eventClass["'latch: shared pool'"]="Concurrency" 374 | eventClass["'LCK0 row cache object free'"]="Concurrency" 375 | eventClass["'Unpin a recreatable chunk'"]="Concurrency" 376 | eventClass["'library cache pin'"]="Concurrency" 377 | eventClass["'library cache lock'"]="Concurrency" 378 | eventClass["'library cache load lock'"]="Concurrency" 379 | eventClass["'library cache: mutex X'"]="Concurrency" 380 | eventClass["'library cache: bucket mutex X'"]="Concurrency" 381 | eventClass["'library cache: dependency mutex X'"]="Concurrency" 382 | eventClass["'library cache: mutex S'"]="Concurrency" 383 | eventClass["'BFILE read'"]="User I/O" 384 | eventClass["'resmgr:cpu quantum'"]="Scheduler" 385 | eventClass["'resmgr:large I/O queued'"]="Scheduler" 386 | eventClass["'resmgr: I/O rate limit'"]="Scheduler" 387 | eventClass["'resmgr:internal state change'"]="Concurrency" 388 | eventClass["'resmgr:sessions to exit'"]="Concurrency" 389 | eventClass["'resmgr:become active'"]="Scheduler" 390 | eventClass["'resmgr:pq queued'"]="Scheduler" 391 | eventClass["'TCP Socket (KGAS)'"]="Network" 392 | eventClass["'utl_file I/O'"]="User I/O" 393 | eventClass["'DNFS disp IO slave completion'"]="User I/O" 394 | eventClass["'alter system set dispatcher'"]="Administrative" 395 | eventClass["'virtual circuit wait'"]="Network" 396 | eventClass["'virtual circuit next request'"]="Idle" 397 | eventClass["'shared server idle wait'"]="Idle" 398 | eventClass["'dispatcher timer'"]="Idle" 399 | eventClass["'dispatcher listen timer'"]="Network" 400 | eventClass["'dedicated server timer'"]="Network" 401 | eventClass["'cmon timer'"]="Idle" 402 | eventClass["'pool server timer'"]="Idle" 403 | eventClass["'connection pool wait'"]="Administrative" 404 | eventClass["'connection broker handoff'"]="Network" 405 | eventClass["'lreg timer'"]="Idle" 406 | eventClass["'JOX Jit Process Sleep'"]="Idle" 407 | eventClass["'jobq slave wait'"]="Idle" 408 | eventClass["'Wait for Table Lock'"]="Application" 409 | eventClass["'pipe get'"]="Idle" 410 | eventClass["'pipe put'"]="Concurrency" 411 | eventClass["'enq: DB - contention'"]="Administrative" 412 | eventClass["'PX Deque wait'"]="Idle" 413 | eventClass["'PX Idle Wait'"]="Idle" 414 | eventClass["'PX Deq Credit: need buffer'"]="Idle" 415 | eventClass["'PX Deq Credit: send blkd'"]="Idle" 416 | eventClass["'PX Deq: Msg Fragment'"]="Idle" 417 | eventClass["'PX Deq: Parse Reply'"]="Idle" 418 | eventClass["'PX Deq: Execute Reply'"]="Idle" 419 | eventClass["'PX Deq: Execution Msg'"]="Idle" 420 | eventClass["'PX Deq: Table Q Normal'"]="Idle" 421 | eventClass["'PX Deq: Table Q Sample'"]="Idle" 422 | eventClass["'enq: TG - IMCDT global resource'"]="Concurrency" 423 | eventClass["'enq: TI - IMCDT object HT'"]="Concurrency" 424 | eventClass["'external table read'"]="User I/O" 425 | eventClass["'external table write'"]="User I/O" 426 | eventClass["'external table open'"]="User I/O" 427 | eventClass["'external table seek'"]="User I/O" 428 | eventClass["'external table misc IO'"]="User I/O" 429 | eventClass["'enq: RC - Result Cache: Contention'"]="Application" 430 | eventClass["'result cache lock wait'"]="Concurrency" 431 | eventClass["'enq: JX - SQL statement queue'"]="Scheduler" 432 | eventClass["'enq: JX - cleanup of queue'"]="Scheduler" 433 | eventClass["'PX Queuing: statement queue'"]="Scheduler" 434 | eventClass["'enq: KV - IMA key vector access'"]="Concurrency" 435 | eventClass["'dbverify reads'"]="User I/O" 436 | eventClass["'REPL Apply: txns'"]="Idle" 437 | eventClass["'REPL Capture: subscribers to catch up'"]="Queueing" 438 | eventClass["'REPL Capture/Apply: memory'"]="Queueing" 439 | eventClass["'REPL Apply: commit'"]="Configuration" 440 | eventClass["'REPL Apply: dependency'"]="Concurrency" 441 | eventClass["'REPL Capture/Apply: flow control'"]="Queueing" 442 | eventClass["'REPL Capture/Apply: messages'"]="Idle" 443 | eventClass["'REPL Capture: archive log'"]="Idle" 444 | eventClass["'REPL Capture: filter callback ruleset'"]="Application" 445 | eventClass["'REPL Apply: apply DDL'"]="Application" 446 | eventClass["'enq: ZG - contention'"]="Administrative" 447 | eventClass["'single-task message'"]="Idle" 448 | eventClass["'SQL*Net message to client'"]="Network" 449 | eventClass["'SQL*Net message to dblink'"]="Network" 450 | eventClass["'SQL*Net more data to client'"]="Network" 451 | eventClass["'SQL*Net more data to dblink'"]="Network" 452 | eventClass["'SQL*Net message from client'"]="Idle" 453 | eventClass["'SQL*Net more data from client'"]="Network" 454 | eventClass["'SQL*Net message from dblink'"]="Network" 455 | eventClass["'SQL*Net more data from dblink'"]="Network" 456 | eventClass["'SQL*Net vector message from client'"]="Idle" 457 | eventClass["'SQL*Net vector message from dblink'"]="Idle" 458 | eventClass["'SQL*Net vector data to client'"]="Network" 459 | eventClass["'SQL*Net vector data from client'"]="Network" 460 | eventClass["'SQL*Net vector data to dblink'"]="Network" 461 | eventClass["'SQL*Net vector data from dblink'"]="Network" 462 | eventClass["'SQL*Net break/reset to client'"]="Application" 463 | eventClass["'SQL*Net break/reset to dblink'"]="Application" 464 | eventClass["'External Procedure initial connection'"]="Application" 465 | eventClass["'External Procedure call'"]="Application" 466 | eventClass["'PL/SQL lock timer'"]="Idle" 467 | eventClass["'wait for EMON to process ntfns'"]="Configuration" 468 | eventClass["'Streams AQ: emn coordinator idle wait'"]="Idle" 469 | eventClass["'EMON slave idle wait'"]="Idle" 470 | eventClass["'Emon coordinator main loop'"]="Idle" 471 | eventClass["'Emon slave main loop'"]="Idle" 472 | eventClass["'enq: UL - contention'"]="Application" 473 | eventClass["'Streams AQ: waiting for messages in the queue'"]="Idle" 474 | eventClass["'Streams AQ: waiting for time management or cleanup tasks'"]="Idle" 475 | eventClass["'Streams AQ: enqueue blocked on low memory'"]="Queueing" 476 | eventClass["'Streams AQ: enqueue blocked due to flow control'"]="Queueing" 477 | eventClass["'Streams AQ: delete acknowledged messages'"]="Idle" 478 | eventClass["'Streams AQ: deallocate messages from Streams Pool'"]="Idle" 479 | eventClass["'Streams AQ: qmn coordinator idle wait'"]="Idle" 480 | eventClass["'Streams AQ: qmn slave idle wait'"]="Idle" 481 | eventClass["'AQ: 12c message cache init wait'"]="Idle" 482 | eventClass["'AQ Cross Master idle'"]="Idle" 483 | eventClass["'AQPC idle'"]="Idle" 484 | eventClass["'Streams AQ: load balancer idle'"]="Idle" 485 | eventClass["'Sharded Queues : Part Maintenance idle'"]="Idle" 486 | eventClass["'Sharded Queues : Part Truncate idle'"]="Idle" 487 | eventClass["'REPL Capture/Apply: RAC AQ qmn coordinator'"]="Idle" 488 | eventClass["'Streams AQ: opt idle'"]="Idle" 489 | eventClass["'HS message to agent'"]="Idle" 490 | eventClass["'TEXT: URL_DATASTORE network wait'"]="Network" 491 | eventClass["'TEXT: File System I/O'"]="User I/O" 492 | eventClass["'OLAP DML Sleep'"]="Application" 493 | eventClass["'Cube Build Master Wait for Jobs'"]="Concurrency" 494 | eventClass["'ASM sync cache disk read'"]="User I/O" 495 | eventClass["'ASM sync relocation I/O'"]="System I/O" 496 | eventClass["'ASM async relocation I/O'"]="System I/O" 497 | eventClass["'ASM COD rollback operation completion'"]="Administrative" 498 | eventClass["'kfk: async disk IO'"]="System I/O" 499 | eventClass["'ASM IO for non-blocking poll'"]="User I/O" 500 | eventClass["'ASM remote SQL'"]="Network" 501 | eventClass["'ASM background timer'"]="Idle" 502 | eventClass["'ASM cluster membership changes'"]="Idle" 503 | eventClass["'iowp io'"]="System I/O" 504 | eventClass["'iowp msg'"]="Idle" 505 | eventClass["'iowp file id'"]="Idle" 506 | eventClass["'netp network'"]="Idle" 507 | eventClass["'gopp msg'"]="Idle" 508 | eventClass["'ASM Fixed Package I/O'"]="User I/O" 509 | eventClass["'ASM mount : wait for heartbeat'"]="Administrative" 510 | eventClass["'ASM PST query : wait for [PM][grp][0] grant'"]="Cluster" 511 | eventClass["'lock remastering'"]="Cluster" 512 | eventClass["'ASM Staleness File I/O'"]="User I/O" 513 | eventClass["'ASM File Group Sync'"]="User I/O" 514 | eventClass["'auto-sqltune: wait graph update'"]="Idle" 515 | eventClass["'WCR: replay client notify'"]="Idle" 516 | eventClass["'WCR: replay clock'"]="Idle" 517 | eventClass["'WCR: replay lock order'"]="Application" 518 | eventClass["'WCR: replay paused'"]="Idle" 519 | eventClass["'JS kgl get object wait'"]="Administrative" 520 | eventClass["'JS external job'"]="Idle" 521 | eventClass["'JS kill job wait'"]="Administrative" 522 | eventClass["'JS coord start wait'"]="Administrative" 523 | eventClass["'cell single block physical read'"]="User I/O" 524 | eventClass["'cell multiblock physical read'"]="User I/O" 525 | eventClass["'cell list of blocks physical read'"]="User I/O" 526 | eventClass["'cell physical read no I/O'"]="User I/O" 527 | eventClass["'cell single block read request'"]="User I/O" 528 | eventClass["'cell multiblock read request'"]="User I/O" 529 | eventClass["'cell list of blocks read request'"]="User I/O" 530 | eventClass["'cell manager opening cell'"]="System I/O" 531 | eventClass["'cell manager closing cell'"]="System I/O" 532 | eventClass["'cell manager discovering disks'"]="System I/O" 533 | eventClass["'cell worker idle'"]="Idle" 534 | eventClass["'events in waitclass Other'"]="Other" 535 | eventClass["'enq: WM - WLM Plan activation'"]="Other" 536 | eventClass["'latch free'"]="Other" 537 | eventClass["'latch activity'"]="Other" 538 | eventClass["'wait list latch free'"]="Other" 539 | eventClass["'kslwait unit test event 1'"]="Other" 540 | eventClass["'kslwait unit test event 2'"]="Other" 541 | eventClass["'kslwait unit test event 3'"]="Other" 542 | eventClass["'unspecified wait event'"]="Other" 543 | eventClass["'global enqueue expand wait'"]="Other" 544 | eventClass["'free process state object'"]="Other" 545 | eventClass["'inactive session'"]="Other" 546 | eventClass["'process terminate'"]="Other" 547 | eventClass["'latch: call allocation'"]="Other" 548 | eventClass["'latch: session allocation'"]="Other" 549 | eventClass["'check CPU wait times'"]="Other" 550 | eventClass["'ADG switchover completion'"]="Other" 551 | eventClass["'process allocation slot'"]="Other" 552 | eventClass["'session allocation inc count'"]="Other" 553 | eventClass["'enq: CI - contention'"]="Other" 554 | eventClass["'enq: PR - contention'"]="Other" 555 | eventClass["'enq: AK - contention'"]="Other" 556 | eventClass["'enq: XK - contention'"]="Other" 557 | eventClass["'enq: DI - contention'"]="Other" 558 | eventClass["'enq: RM - contention'"]="Other" 559 | eventClass["'enq: BO - contention'"]="Other" 560 | eventClass["'ges resource enqueue open retry sleep'"]="Other" 561 | eventClass["'ksim generic wait event'"]="Other" 562 | eventClass["'enq: DE - Update Draining Test'"]="Other" 563 | eventClass["'debugger command'"]="Other" 564 | eventClass["'oradebug request slot'"]="Other" 565 | eventClass["'oradebug request completion'"]="Other" 566 | eventClass["'latch: ksm sga alloc latch'"]="Other" 567 | eventClass["'defer SGA allocation slave'"]="Other" 568 | eventClass["'SGA Allocator termination'"]="Other" 569 | eventClass["'PGA memory operation'"]="Other" 570 | eventClass["'enq: PE - contention'"]="Other" 571 | eventClass["'enq: PG - contention'"]="Other" 572 | eventClass["'ksbsrv'"]="Other" 573 | eventClass["'ksbcic'"]="Other" 574 | eventClass["'process startup'"]="Other" 575 | eventClass["'process shutdown'"]="Other" 576 | eventClass["'prior spawner clean up'"]="Other" 577 | eventClass["'latch: messages'"]="Other" 578 | eventClass["'rdbms ipc message block'"]="Other" 579 | eventClass["'rdbms ipc reply'"]="Other" 580 | eventClass["'latch: pdb enqueue hash chains'"]="Other" 581 | eventClass["'latch: enqueue hash chains'"]="Other" 582 | eventClass["'imm op'"]="Other" 583 | eventClass["'slave exit'"]="Other" 584 | eventClass["'enq: FP - global fob contention'"]="Other" 585 | eventClass["'enq: RE - block repair contention'"]="Other" 586 | eventClass["'enq: BM - clonedb bitmap file write'"]="Other" 587 | eventClass["'asynch descriptor resize'"]="Other" 588 | eventClass["'OFS interrupted req not found'"]="Other" 589 | eventClass["'enq: FO - file system operation contention'"]="Other" 590 | eventClass["'resmgr:plan change'"]="Other" 591 | eventClass["'enq: KM - contention'"]="Other" 592 | eventClass["'enq: KT - contention'"]="Other" 593 | eventClass["'enq: CA - contention'"]="Other" 594 | eventClass["'enq: KD - determine DBRM master'"]="Other" 595 | eventClass["'reliable message'"]="Other" 596 | eventClass["'broadcast mesg queue transition'"]="Other" 597 | eventClass["'broadcast mesg recovery queue transition'"]="Other" 598 | eventClass["'KSV master wait'"]="Other" 599 | eventClass["'master exit'"]="Other" 600 | eventClass["'ksv slave avail wait'"]="Other" 601 | eventClass["'enq: PV - syncstart'"]="Other" 602 | eventClass["'enq: PV - syncshut'"]="Other" 603 | eventClass["'enq: SP - contention 1'"]="Other" 604 | eventClass["'enq: SP - contention 2'"]="Other" 605 | eventClass["'enq: SP - contention 3'"]="Other" 606 | eventClass["'enq: SP - contention 4'"]="Other" 607 | eventClass["'enq: SX - contention 5'"]="Other" 608 | eventClass["'enq: SX - contention 6'"]="Other" 609 | eventClass["'CRS get service attributes'"]="Other" 610 | eventClass["'unified memory allocation'"]="Other" 611 | eventClass["'Memory: Reg/Dereg'"]="Other" 612 | eventClass["'IPC send completion sync'"]="Other" 613 | eventClass["'OSD IPC library'"]="Other" 614 | eventClass["'IPC wait for name service busy'"]="Other" 615 | eventClass["'IPC busy async request'"]="Other" 616 | eventClass["'IPC waiting for OSD resources'"]="Other" 617 | eventClass["'ksxr poll remote instances'"]="Other" 618 | eventClass["'ksxr wait for mount shared'"]="Other" 619 | eventClass["'DBMS_LDAP: LDAP operation '"]="Other" 620 | eventClass["'wait for FMON to come up'"]="Other" 621 | eventClass["'enq: FM - contention'"]="Other" 622 | eventClass["'enq: XY - contention'"]="Other" 623 | eventClass["'latch: active service list'"]="Other" 624 | eventClass["'latch: service drain list'"]="Other" 625 | eventClass["'latch: last service list'"]="Other" 626 | eventClass["'latch: java patching'"]="Other" 627 | eventClass["'enq: AS - service activation'"]="Other" 628 | eventClass["'JAVA patching'"]="Other" 629 | eventClass["'enq: PD - contention'"]="Other" 630 | eventClass["'oracle thread bootstrap'"]="Other" 631 | eventClass["'os thread creation'"]="Other" 632 | eventClass["'cleanup of aborted process'"]="Other" 633 | eventClass["'enq: XM - contention'"]="Other" 634 | eventClass["'enq: RU - contention'"]="Other" 635 | eventClass["'enq: RU - waiting'"]="Other" 636 | eventClass["'rolling migration: cluster quiesce'"]="Other" 637 | eventClass["'LMON global data update'"]="Other" 638 | eventClass["'rolling migration: orphans detected'"]="Other" 639 | eventClass["'process diagnostic dump'"]="Other" 640 | eventClass["'enq: MX - sync storage server info'"]="Other" 641 | eventClass["'master diskmon startup'"]="Other" 642 | eventClass["'master diskmon read'"]="Other" 643 | eventClass["'DSKM to complete cell health check'"]="Other" 644 | eventClass["'pmon dblkr tst event'"]="Other" 645 | eventClass["'latch: ksolt lwth alloc'"]="Other" 646 | eventClass["'lightweight thread operation'"]="Other" 647 | eventClass["'lightweight thread task completion'"]="Other" 648 | eventClass["'enq: WN - rw snapshot synchronization'"]="Other" 649 | eventClass["'read/write snapshot completion'"]="Other" 650 | eventClass["'enq: ZX - repopulation file write'"]="Other" 651 | eventClass["'pmon cleanup'"]="Other" 652 | eventClass["'pmon shutdown'"]="Other" 653 | eventClass["'GL: cross instance latch free'"]="Other" 654 | eventClass["'RMA: rlog allocate'"]="Other" 655 | eventClass["'RMA: RAC reconfig'"]="Other" 656 | eventClass["'RMA: latch'"]="Other" 657 | eventClass["'DNFS disp IO slave cleanup'"]="Other" 658 | eventClass["'enq: KA - ACL control status'"]="Other" 659 | eventClass["'Nest operation'"]="Other" 660 | eventClass["'DIAG lock acquisition'"]="Other" 661 | eventClass["'latch: ges resource hash list'"]="Other" 662 | eventClass["'DFS lock handle'"]="Other" 663 | eventClass["'ges server process to shutdown'"]="Other" 664 | eventClass["'ges client process to exit'"]="Other" 665 | eventClass["'ges global resource directory to be frozen'"]="Other" 666 | eventClass["'ges resource directory to be unfrozen'"]="Other" 667 | eventClass["'gcs resource directory to be unfrozen'"]="Other" 668 | eventClass["'ges LMD to inherit communication channels'"]="Other" 669 | eventClass["'ges lmd sync during reconfig'"]="Other" 670 | eventClass["'ges wait for lmon to be ready'"]="Other" 671 | eventClass["'ges cgs registration'"]="Other" 672 | eventClass["'wait for master scn'"]="Other" 673 | eventClass["'ges yield cpu in reconfig'"]="Other" 674 | eventClass["'ges2 proc latch in rm latch get 1'"]="Other" 675 | eventClass["'ges2 proc latch in rm latch get 2'"]="Other" 676 | eventClass["'ges lmd/lmses to freeze in rcfg'"]="Other" 677 | eventClass["'ges lmd/lmses to unfreeze in rcfg'"]="Other" 678 | eventClass["'ges lms sync during dynamic remastering and reconfig'"]="Other" 679 | eventClass["'ges LMON to join CGS group'"]="Other" 680 | eventClass["'ges pmon to exit'"]="Other" 681 | eventClass["'ges lmd and pmon to attach'"]="Other" 682 | eventClass["'gcs drm freeze begin'"]="Other" 683 | eventClass["'gcs retry nowait latch get'"]="Other" 684 | eventClass["'gcs remastering wait for read latch'"]="Other" 685 | eventClass["'ges cached resource cleanup'"]="Other" 686 | eventClass["'ges generic event'"]="Other" 687 | eventClass["'ges instance reconfig name entry query'"]="Other" 688 | eventClass["'ges process with outstanding i/o'"]="Other" 689 | eventClass["'ges user error'"]="Other" 690 | eventClass["'ges enter server mode'"]="Other" 691 | eventClass["'gcs enter server mode'"]="Other" 692 | eventClass["'ges ipc enter server mode'"]="Other" 693 | eventClass["'gcs drm freeze in enter server mode'"]="Other" 694 | eventClass["'gcs ddet enter server mode'"]="Other" 695 | eventClass["'ges cancel'"]="Other" 696 | eventClass["'ges resource cleanout during enqueue open'"]="Other" 697 | eventClass["'ges resource cleanout during enqueue open-cvt'"]="Other" 698 | eventClass["'ges master to get established for SCN op'"]="Other" 699 | eventClass["'ges LMON to get to FTDONE '"]="Other" 700 | eventClass["'ges1 LMON to wake up LMD - mrcvr'"]="Other" 701 | eventClass["'ges2 LMON to wake up LMD - mrcvr'"]="Other" 702 | eventClass["'ges2 LMON to wake up lms - mrcvr 2'"]="Other" 703 | eventClass["'ges2 LMON to wake up lms - mrcvr 3'"]="Other" 704 | eventClass["'ges inquiry response'"]="Other" 705 | eventClass["'ges reusing os pid'"]="Other" 706 | eventClass["'ges LMON for send queues'"]="Other" 707 | eventClass["'ges LMD suspend for testing event'"]="Other" 708 | eventClass["'ges performance test completion'"]="Other" 709 | eventClass["'kjbopen wait for recovery domain attach'"]="Other" 710 | eventClass["'kjudomatt wait for recovery domain attach'"]="Other" 711 | eventClass["'kjudomdet wait for recovery domain detach'"]="Other" 712 | eventClass["'kjbdomalc allocate recovery domain - retry'"]="Other" 713 | eventClass["'kjbdrmcvtq lmon drm quiesce: ping completion'"]="Other" 714 | eventClass["'ges RMS0 retry add redo log'"]="Other" 715 | eventClass["'readable standby redo apply remastering'"]="Other" 716 | eventClass["'ges DFS hang analysis phase 2 acks'"]="Other" 717 | eventClass["'ges/gcs diag dump'"]="Other" 718 | eventClass["'global plug and play automatic resource creation'"]="Other" 719 | eventClass["'gcs lmon dirtydetach step completion'"]="Other" 720 | eventClass["'recovery instance recovery completion'"]="Other" 721 | eventClass["'ack for a broadcasted res from a remote instance'"]="Other" 722 | eventClass["'kill all read-only instances in cluster'"]="Other" 723 | eventClass["'latch: kjci process context latch'"]="Other" 724 | eventClass["'latch: kjci request sequence latch'"]="Other" 725 | eventClass["'DLM cross inst call completion'"]="Other" 726 | eventClass["'DLM: shared instance mode init'"]="Other" 727 | eventClass["'enq: KI - contention'"]="Other" 728 | eventClass["'latch: kjoeq omni enqueue hash bucket latch'"]="Other" 729 | eventClass["'DLM enqueue copy completion'"]="Other" 730 | eventClass["'latch: kjoer owner hash bucket'"]="Other" 731 | eventClass["'DLM Omni Enq Owner replication'"]="Other" 732 | eventClass["'KJC: Wait for msg sends to complete'"]="Other" 733 | eventClass["'ges message buffer allocation'"]="Other" 734 | eventClass["'kjctssqmg: quick message send wait'"]="Other" 735 | eventClass["'gcs domain validation'"]="Other" 736 | eventClass["'latch: gcs resource hash'"]="Other" 737 | eventClass["'affinity expansion in replay'"]="Other" 738 | eventClass["'wait for sync ack'"]="Other" 739 | eventClass["'wait for verification ack'"]="Other" 740 | eventClass["'wait for assert messages to be sent'"]="Other" 741 | eventClass["'wait for scn ack'"]="Other" 742 | eventClass["'lms flush message acks'"]="Other" 743 | eventClass["'name-service call wait'"]="Other" 744 | eventClass["'CGS wait for IPC msg'"]="Other" 745 | eventClass["'IMR hang simulation'"]="Other" 746 | eventClass["'IMR mount phase II completion'"]="Other" 747 | eventClass["'IMR disk votes'"]="Other" 748 | eventClass["'IMR rr lock release'"]="Other" 749 | eventClass["'IMR net-check message ack'"]="Other" 750 | eventClass["'IMR rr update'"]="Other" 751 | eventClass["'IMR membership resolution'"]="Other" 752 | eventClass["'IMR CSS join retry'"]="Other" 753 | eventClass["'IMR slave process init'"]="Other" 754 | eventClass["'IMR slave process shutdown'"]="Other" 755 | eventClass["'IMR slave acknowledgement msg'"]="Other" 756 | eventClass["'CGS skgxn join retry'"]="Other" 757 | eventClass["'CGS ping operation'"]="Other" 758 | eventClass["'gcs to be enabled'"]="Other" 759 | eventClass["'gcs log flush sync'"]="Other" 760 | eventClass["'KA: shared KGA not initialized'"]="Other" 761 | eventClass["'enq: PP - contention'"]="Other" 762 | eventClass["'enq: HM - contention'"]="Other" 763 | eventClass["'GCR ctx lock acquisition'"]="Other" 764 | eventClass["'GCR CSS group lock'"]="Other" 765 | eventClass["'GCR CSS group join'"]="Other" 766 | eventClass["'GCR CSS group leave'"]="Other" 767 | eventClass["'GCR CSS group update'"]="Other" 768 | eventClass["'GCR CSS group query'"]="Other" 769 | eventClass["'enq: AC - acquiring partition id'"]="Other" 770 | eventClass["'LMA glob lock acquisition'"]="Other" 771 | eventClass["'LMA KGA glob lock acquisition'"]="Other" 772 | eventClass["'latch: GCS logfile block'"]="Other" 773 | eventClass["'latch: GCS logfile write queue'"]="Other" 774 | eventClass["'LMFC reconfig operation'"]="Other" 775 | eventClass["'PCFC: recovery domain valid'"]="Other" 776 | eventClass["'SGA: allocation forcing component growth'"]="Other" 777 | eventClass["'SGA: sga_target resize'"]="Other" 778 | eventClass["'enq: SC - contention'"]="Other" 779 | eventClass["'control file heartbeat'"]="Other" 780 | eventClass["'control file diagnostic dump'"]="Other" 781 | eventClass["'enq: CF - contention'"]="Other" 782 | eventClass["'enq: SW - contention'"]="Other" 783 | eventClass["'enq: DS - contention'"]="Other" 784 | eventClass["'enq: TC - contention'"]="Other" 785 | eventClass["'enq: TC - contention2'"]="Other" 786 | eventClass["'buffer exterminate'"]="Other" 787 | eventClass["'kcbw: cache protect wait'"]="Other" 788 | eventClass["'latch: cache buffers lru chain'"]="Other" 789 | eventClass["'enq: PW - perwarm status in dbw0'"]="Other" 790 | eventClass["'latch: checkpoint queue latch'"]="Other" 791 | eventClass["'latch: cache buffer handles'"]="Other" 792 | eventClass["'kcbzps'"]="Other" 793 | eventClass["'DBWR range invalidation sync'"]="Other" 794 | eventClass["'buffer deadlock'"]="Other" 795 | eventClass["'buffer latch'"]="Other" 796 | eventClass["'cr request retry'"]="Other" 797 | eventClass["'influx scn'"]="Other" 798 | eventClass["'writes stopped by instance recovery or database suspension'"]="Other" 799 | eventClass["'lock escalate retry'"]="Other" 800 | eventClass["'lock deadlock retry'"]="Other" 801 | eventClass["'prefetch warmup block being transferred'"]="Other" 802 | eventClass["'recovery buffer pinned'"]="Other" 803 | eventClass["'tablespace key change'"]="Other" 804 | eventClass["'TSE SSO wallet reopen'"]="Other" 805 | eventClass["'force-cr-override flush'"]="Other" 806 | eventClass["'enq: CR - block range reuse ckpt'"]="Other" 807 | eventClass["'enq: TR - serialize TS rekeys'"]="Other" 808 | eventClass["'enq: TR - database key open check'"]="Other" 809 | eventClass["'enq: TR - serialize system rekeys'"]="Other" 810 | eventClass["'wait for MTTR advisory state object'"]="Other" 811 | eventClass["'latch: object queue header operation'"]="Other" 812 | eventClass["'enq: BU - recovery set construct'"]="Other" 813 | eventClass["'enq: BU - recovery set takeover'"]="Other" 814 | eventClass["'retry CFTXN during close'"]="Other" 815 | eventClass["'get branch/thread/sequence enqueue'"]="Other" 816 | eventClass["'enq: WL - Test access/locking'"]="Other" 817 | eventClass["'Data Guard server operation completion'"]="Other" 818 | eventClass["'FAL archive wait 1 sec for REOPEN minimum'"]="Other" 819 | eventClass["'TEST: action sync'"]="Other" 820 | eventClass["'TEST: action hang'"]="Other" 821 | eventClass["'RSGA: RAC reconfiguration'"]="Other" 822 | eventClass["'enq: WL - RAC-wide SGA initialize'"]="Other" 823 | eventClass["'enq: WL - RAC-wide SGA write'"]="Other" 824 | eventClass["'enq: WL - RAC-wide SGA dump'"]="Other" 825 | eventClass["'MRP stop'"]="Other" 826 | eventClass["'enq: SA - standby redo logfiles'"]="Other" 827 | eventClass["'enq: WS - contention'"]="Other" 828 | eventClass["'MRP wait on process start'"]="Other" 829 | eventClass["'MRP wait on process restart'"]="Other" 830 | eventClass["'MRP wait on startup clear'"]="Other" 831 | eventClass["'MRP inactivation'"]="Other" 832 | eventClass["'MRP wait on archivelog arrival'"]="Other" 833 | eventClass["'MRP wait on archivelog archival'"]="Other" 834 | eventClass["'enq: WL - Far Sync Fail Over'"]="Other" 835 | eventClass["'enq: SA - MRP SRL access'"]="Other" 836 | eventClass["'Monitor testing'"]="Other" 837 | eventClass["'enq: WL - redo_db table update'"]="Other" 838 | eventClass["'enq: WL - redo_log table update'"]="Other" 839 | eventClass["'log switch/archive'"]="Other" 840 | eventClass["'enq: WL - Switchover To Primary'"]="Other" 841 | eventClass["'ARCH wait on c/f tx acquire 1'"]="Other" 842 | eventClass["'RFS attach'"]="Other" 843 | eventClass["'RFS create'"]="Other" 844 | eventClass["'RFS close'"]="Other" 845 | eventClass["'RFS announce'"]="Other" 846 | eventClass["'RFS register'"]="Other" 847 | eventClass["'RFS detach'"]="Other" 848 | eventClass["'RFS ping'"]="Other" 849 | eventClass["'RFS dispatch'"]="Other" 850 | eventClass["'enq: WL - RFS global state contention'"]="Other" 851 | eventClass["'enq: WL - SNA access/locking'"]="Other" 852 | eventClass["'LGWR simulation latency wait'"]="Other" 853 | eventClass["'LNS simulation latency wait'"]="Other" 854 | eventClass["'ASYNC Remote Write'"]="Other" 855 | eventClass["'SYNC Remote Write'"]="Other" 856 | eventClass["'ARCH Remote Write'"]="Other" 857 | eventClass["'Redo Transport Attach'"]="Other" 858 | eventClass["'Redo Transport Detach'"]="Other" 859 | eventClass["'Redo Transport Open'"]="Other" 860 | eventClass["'Redo Transport Close'"]="Other" 861 | eventClass["'Redo Transport Ping'"]="Other" 862 | eventClass["'Remote SYNC Ping'"]="Other" 863 | eventClass["'Redo Transport Slave Startup'"]="Other" 864 | eventClass["'Redo Transport Slave Shutdown'"]="Other" 865 | eventClass["'Redo Writer Remote Sync Notify'"]="Other" 866 | eventClass["'Redo Writer Remote Sync Complete'"]="Other" 867 | eventClass["'Redo Transport MISC'"]="Other" 868 | eventClass["'Redo Transport Network Throttle'"]="Other" 869 | eventClass["'enq: WL - Network Throttle'"]="Other" 870 | eventClass["'LGWR-LNS wait on channel'"]="Other" 871 | eventClass["'enq: WR - contention'"]="Other" 872 | eventClass["'Data Guard: rtrt work'"]="Other" 873 | eventClass["'Redo transport testing'"]="Other" 874 | eventClass["'enq: RZ - add element'"]="Other" 875 | eventClass["'enq: RZ - remove element'"]="Other" 876 | eventClass["'Image redo gen delay'"]="Other" 877 | eventClass["'Long operation CF pause'"]="Other" 878 | eventClass["'LGWR wait for redo copy'"]="Other" 879 | eventClass["'latch: redo allocation'"]="Other" 880 | eventClass["'log file switch (clearing log file)'"]="Other" 881 | eventClass["'log file sync: PDB shutdown abort'"]="Other" 882 | eventClass["'target log write size'"]="Other" 883 | eventClass["'LGWR any worker group'"]="Other" 884 | eventClass["'LGWR all worker groups'"]="Other" 885 | eventClass["'LGWR worker group ordering'"]="Other" 886 | eventClass["'LGWR intra group sync'"]="Other" 887 | eventClass["'LGWR intra group IO completion'"]="Other" 888 | eventClass["'enq: WL - contention'"]="Other" 889 | eventClass["'enq: RN - contention'"]="Other" 890 | eventClass["'DFS db file lock'"]="Other" 891 | eventClass["'PDB close/open on another instance'"]="Other" 892 | eventClass["'database open on read-write instance'"]="Other" 893 | eventClass["'enq: DF - contention'"]="Other" 894 | eventClass["'enq: IS - contention'"]="Other" 895 | eventClass["'enq: IP - open/close PDB'"]="Other" 896 | eventClass["'enq: PX - PDB instance recovery'"]="Other" 897 | eventClass["'enq: FS - contention'"]="Other" 898 | eventClass["'enq: FS - online log operation'"]="Other" 899 | eventClass["'enq: DM - contention'"]="Other" 900 | eventClass["'enq: DM - access control'"]="Other" 901 | eventClass["'enq: RP - contention'"]="Other" 902 | eventClass["'latch: gc element'"]="Other" 903 | eventClass["'redo log switch request completion'"]="Other" 904 | eventClass["'enq: RT - contention'"]="Other" 905 | eventClass["'enq: RT - thread internal enable/disable'"]="Other" 906 | eventClass["'enq: IR - contention'"]="Other" 907 | eventClass["'enq: IR - contention2'"]="Other" 908 | eventClass["'enq: IR - global serialization'"]="Other" 909 | eventClass["'enq: IR - local serialization'"]="Other" 910 | eventClass["'enq: IR - arbitrate instance recovery'"]="Other" 911 | eventClass["'enq: MR - contention'"]="Other" 912 | eventClass["'enq: MR - standby role transition'"]="Other" 913 | eventClass["'enq: MR - multi instance redo apply'"]="Other" 914 | eventClass["'enq: MR - any role transition'"]="Other" 915 | eventClass["'enq: MR - PDB open'"]="Other" 916 | eventClass["'enq: MR - datafile online'"]="Other" 917 | eventClass["'enq: MR - adg instance recovery'"]="Other" 918 | eventClass["'enq: MR - preplugin recovery'"]="Other" 919 | eventClass["'enq: MR - datafile pre-create'"]="Other" 920 | eventClass["'shutdown after switchover to standby'"]="Other" 921 | eventClass["'cancel media recovery on switchover'"]="Other" 922 | eventClass["'PDB lock domain invalidation'"]="Other" 923 | eventClass["'Recovery: scn growth limit'"]="Other" 924 | eventClass["'parallel recovery coord wait for reply'"]="Other" 925 | eventClass["'parallel recovery coord send blocked'"]="Other" 926 | eventClass["'parallel recovery slave wait for change'"]="Other" 927 | eventClass["'enq: BR - file shrink'"]="Other" 928 | eventClass["'enq: BR - proxy-copy'"]="Other" 929 | eventClass["'enq: BR - multi-section restore header'"]="Other" 930 | eventClass["'enq: BR - multi-section restore section'"]="Other" 931 | eventClass["'enq: BR - space info datafile hdr update'"]="Other" 932 | eventClass["'enq: BR - request autobackup'"]="Other" 933 | eventClass["'enq: BR - perform autobackup'"]="Other" 934 | eventClass["'enq: BR - perform catalog recovery area'"]="Other" 935 | eventClass["'enq: ID - contention'"]="Other" 936 | eventClass["'Backup Restore Throttle sleep'"]="Other" 937 | eventClass["'Backup Restore Switch Bitmap sleep'"]="Other" 938 | eventClass["'Backup Restore Event sleep'"]="Other" 939 | eventClass["'RMAN wallet access limit'"]="Other" 940 | eventClass["'enq: BS - Backup spare1'"]="Other" 941 | eventClass["'enq: BS - Backup spare2'"]="Other" 942 | eventClass["'enq: BS - Backup spare3'"]="Other" 943 | eventClass["'enq: BS - Backup spare4'"]="Other" 944 | eventClass["'enq: BS - Backup spare5'"]="Other" 945 | eventClass["'enq: BS - Backup spare6'"]="Other" 946 | eventClass["'enq: BS - Backup spare7'"]="Other" 947 | eventClass["'enq: BS - Backup spare8'"]="Other" 948 | eventClass["'enq: BS - Backup spare9'"]="Other" 949 | eventClass["'enq: BS - Backup spare0'"]="Other" 950 | eventClass["'enq: AB - ABMR process start/stop'"]="Other" 951 | eventClass["'enq: AB - ABMR process initialized'"]="Other" 952 | eventClass["'Auto BMR completion'"]="Other" 953 | eventClass["'Auto BMR RPC standby catchup'"]="Other" 954 | eventClass["'enq: ZR - ZDLRA lock db'"]="Other" 955 | eventClass["'enq: ZR - ZDLRA lock storage loc'"]="Other" 956 | eventClass["'enq: ZR - ZDLRA lock timer queue'"]="Other" 957 | eventClass["'enq: ZR - ZDLRA lock scheduler'"]="Other" 958 | eventClass["'enq: ZR - ZDLRA lock API'"]="Other" 959 | eventClass["'enq: ZR - ZDLRA quiesce tasks '"]="Other" 960 | eventClass["'enq: ZR - ZDLRA check quiesce tasks'"]="Other" 961 | eventClass["'enq: ZR - ZDLRA quiesce servlets'"]="Other" 962 | eventClass["'enq: ZR - ZDLRA check servlet quiescence'"]="Other" 963 | eventClass["'enq: ZR - ZDLRA serialize unregister db'"]="Other" 964 | eventClass["'enq: ZR - ZDLRA run scheduler'"]="Other" 965 | eventClass["'enq: ZR - ZDLRA purge storage loc'"]="Other" 966 | eventClass["'enq: ZR - ZDLRA spare enq 10'"]="Other" 967 | eventClass["'enq: ZR - ZDLRA invalidate plans'"]="Other" 968 | eventClass["'enq: ZR - ZDLRA protect plans'"]="Other" 969 | eventClass["'enq: BC - drop container group'"]="Other" 970 | eventClass["'enq: BC - create container'"]="Other" 971 | eventClass["'enq: BC - group - create container'"]="Other" 972 | eventClass["'enq: BC - drop container'"]="Other" 973 | eventClass["'enq: BC - group - create file'"]="Other" 974 | eventClass["'enq: BI - create file'"]="Other" 975 | eventClass["'enq: BI - identify file'"]="Other" 976 | eventClass["'enq: BI - delete file'"]="Other" 977 | eventClass["'enq: BZ - resize file'"]="Other" 978 | eventClass["'enq: BV - rebuild/validate group'"]="Other" 979 | eventClass["'Backup Appliance container synchronous read'"]="Other" 980 | eventClass["'Backup Appliance container synchronous write'"]="Other" 981 | eventClass["'Backup Appliance container I/O'"]="Other" 982 | eventClass["'Supplemental logging roles'"]="Other" 983 | eventClass["'LogMiner builder: queue full'"]="Other" 984 | eventClass["'LogMiner reader: redo slot'"]="Other" 985 | eventClass["'LogMiner reader: memory'"]="Other" 986 | eventClass["'LogMiner merger: redo slot'"]="Other" 987 | eventClass["'LogMiner: txn'"]="Other" 988 | eventClass["'LogMiner: queue'"]="Other" 989 | eventClass["'LogMiner: session audit list'"]="Other" 990 | eventClass["'LogMiner FSC: dictionary load completion'"]="Other" 991 | eventClass["'enq: MN - contention'"]="Other" 992 | eventClass["'enq: ZL - LogMiner foreign log metadata'"]="Other" 993 | eventClass["'enq: PL - contention'"]="Other" 994 | eventClass["'enq: CP - Pluggable database resetlogs'"]="Other" 995 | eventClass["'enq: SB - logical standby metadata'"]="Other" 996 | eventClass["'enq: SB - table instantiation'"]="Other" 997 | eventClass["'Logical Standby Apply shutdown'"]="Other" 998 | eventClass["'Logical Standby pin transaction'"]="Other" 999 | eventClass["'Logical Standby dictionary build'"]="Other" 1000 | eventClass["'Logical Standby Terminal Apply'"]="Other" 1001 | eventClass["'Logical Standby Debug'"]="Other" 1002 | eventClass["'Resolution of in-doubt txns'"]="Other" 1003 | eventClass["'enq: XR - quiesce database'"]="Other" 1004 | eventClass["'enq: XR - database force logging'"]="Other" 1005 | eventClass["'ADG query scn advance'"]="Other" 1006 | eventClass["'ADG instance recovery complete'"]="Other" 1007 | eventClass["'latch: obj/range reuse redo processing'"]="Other" 1008 | eventClass["'standby query scn advance'"]="Other" 1009 | eventClass["'change tracking file synchronous read'"]="Other" 1010 | eventClass["'change tracking file synchronous write'"]="Other" 1011 | eventClass["'change tracking file parallel write'"]="Other" 1012 | eventClass["'block change tracking buffer space'"]="Other" 1013 | eventClass["'CTWR media recovery checkpoint request'"]="Other" 1014 | eventClass["'enq: CT - global space management'"]="Other" 1015 | eventClass["'enq: CT - local space management'"]="Other" 1016 | eventClass["'enq: CT - change stream ownership'"]="Other" 1017 | eventClass["'enq: CT - state'"]="Other" 1018 | eventClass["'enq: CT - state change gate 1'"]="Other" 1019 | eventClass["'enq: CT - state change gate 2'"]="Other" 1020 | eventClass["'enq: CT - CTWR process start/stop'"]="Other" 1021 | eventClass["'enq: CT - reading'"]="Other" 1022 | eventClass["'recovery area: computing dropped files'"]="Other" 1023 | eventClass["'recovery area: computing obsolete files'"]="Other" 1024 | eventClass["'recovery area: computing backed up files'"]="Other" 1025 | eventClass["'recovery area: computing applied logs'"]="Other" 1026 | eventClass["'enq: RS - file delete'"]="Other" 1027 | eventClass["'enq: RS - record reuse'"]="Other" 1028 | eventClass["'enq: RS - prevent file delete'"]="Other" 1029 | eventClass["'enq: RS - prevent aging list update'"]="Other" 1030 | eventClass["'enq: RS - persist alert level'"]="Other" 1031 | eventClass["'enq: RS - read alert level'"]="Other" 1032 | eventClass["'enq: RS - write alert level'"]="Other" 1033 | eventClass["'enq: FL - Flashback database log'"]="Other" 1034 | eventClass["'enq: FL - Flashback db command'"]="Other" 1035 | eventClass["'enq: FD - Marker generation'"]="Other" 1036 | eventClass["'enq: FD - Tablespace flashback on/off'"]="Other" 1037 | eventClass["'enq: FD - Flashback coordinator'"]="Other" 1038 | eventClass["'enq: FD - Flashback on/off'"]="Other" 1039 | eventClass["'enq: FD - Restore point create/drop'"]="Other" 1040 | eventClass["'enq: FD - Flashback logical operations'"]="Other" 1041 | eventClass["'flashback free VI log'"]="Other" 1042 | eventClass["'flashback log switch'"]="Other" 1043 | eventClass["'enq: FW - contention'"]="Other" 1044 | eventClass["'RVWR wait for flashback copy'"]="Other" 1045 | eventClass["'parallel recovery read buffer free'"]="Other" 1046 | eventClass["'parallel recovery redo cache buffer free'"]="Other" 1047 | eventClass["'parallel recovery change buffer free'"]="Other" 1048 | eventClass["'parallel recovery push change'"]="Other" 1049 | eventClass["'cell smart flash keep'"]="Other" 1050 | eventClass["'cell smart flash unkeep'"]="Other" 1051 | eventClass["'cell ram cache population'"]="Other" 1052 | eventClass["'parallel recovery coord: all replies'"]="Other" 1053 | eventClass["'datafile move cleanup during resize'"]="Other" 1054 | eventClass["'Nologging Standby Unit Test'"]="Other" 1055 | eventClass["'Nonlogged block fetch'"]="Other" 1056 | eventClass["'recovery receive buffer free'"]="Other" 1057 | eventClass["'recovery cancel '"]="Other" 1058 | eventClass["'recovery remote file verification '"]="Other" 1059 | eventClass["'recovery active instance mapping setup'"]="Other" 1060 | eventClass["'recovery new thread enable'"]="Other" 1061 | eventClass["'recovery file header update for checkpoint'"]="Other" 1062 | eventClass["'recovery file header update for fuzziness'"]="Other" 1063 | eventClass["'recovery coordinator apply pending'"]="Other" 1064 | eventClass["'recovery coordinator marker apply'"]="Other" 1065 | eventClass["'recovery coordinator message'"]="Other" 1066 | eventClass["'recovery merge pending'"]="Other" 1067 | eventClass["'recovery metadata latch'"]="Other" 1068 | eventClass["'recovery checkpoint'"]="Other" 1069 | eventClass["'recovery apply pending'"]="Other" 1070 | eventClass["'recovery fuzzy update'"]="Other" 1071 | eventClass["'recovery shutdown'"]="Other" 1072 | eventClass["'recovery message'"]="Other" 1073 | eventClass["'recovery slaves to be informed'"]="Other" 1074 | eventClass["'recovery move influx buffers'"]="Other" 1075 | eventClass["'recovery marker apply'"]="Other" 1076 | eventClass["'recovery timestamp'"]="Other" 1077 | eventClass["'recovery send buffer free'"]="Other" 1078 | eventClass["'DBMS_ROLLING instruction completion'"]="Other" 1079 | eventClass["'Shadow lost write'"]="Other" 1080 | eventClass["'blocking txn id for DDL'"]="Other" 1081 | eventClass["'transaction'"]="Other" 1082 | eventClass["'inactive transaction branch'"]="Other" 1083 | eventClass["'txn to complete'"]="Other" 1084 | eventClass["'PMON to cleanup pseudo-branches at svc stop time'"]="Other" 1085 | eventClass["'PMON to cleanup detached branches at shutdown'"]="Other" 1086 | eventClass["'test long ops'"]="Other" 1087 | eventClass["'latch: undo global data'"]="Other" 1088 | eventClass["'undo segment recovery'"]="Other" 1089 | eventClass["'unbound tx'"]="Other" 1090 | eventClass["'wait for change'"]="Other" 1091 | eventClass["'wait for another txn - undo rcv abort'"]="Other" 1092 | eventClass["'wait for another txn - txn abort'"]="Other" 1093 | eventClass["'wait for another txn - rollback to savepoint'"]="Other" 1094 | eventClass["'undo_retention publish retry'"]="Other" 1095 | eventClass["'txn cache read version'"]="Other" 1096 | eventClass["'enq: TA - contention'"]="Other" 1097 | eventClass["'enq: TX - contention'"]="Other" 1098 | eventClass["'enq: US - contention'"]="Other" 1099 | eventClass["'wait for stopper event to be increased'"]="Other" 1100 | eventClass["'wait for a undo record'"]="Other" 1101 | eventClass["'wait for a paralle reco to abort'"]="Other" 1102 | eventClass["'enq: IM - contention for blr'"]="Other" 1103 | eventClass["'enq: TD - KTF dump entries'"]="Other" 1104 | eventClass["'enq: TE - KTF broadcast'"]="Other" 1105 | eventClass["'enq: CN - race with txn'"]="Other" 1106 | eventClass["'enq: CN - race with reg'"]="Other" 1107 | eventClass["'enq: CN - race with init'"]="Other" 1108 | eventClass["'latch: Change Notification Hash table latch'"]="Other" 1109 | eventClass["'enq: CO - master slave det'"]="Other" 1110 | eventClass["'enq: FE - contention'"]="Other" 1111 | eventClass["'latch: change notification client cache latch'"]="Other" 1112 | eventClass["'latch: SGA Logging Log Latch'"]="Other" 1113 | eventClass["'latch: SGA Logging Bkt Latch'"]="Other" 1114 | eventClass["'enq: MC - Securefile log'"]="Other" 1115 | eventClass["'enq: MF - flush bkgnd periodic'"]="Other" 1116 | eventClass["'enq: MF - creating swap in instance'"]="Other" 1117 | eventClass["'enq: MF - flush space'"]="Other" 1118 | eventClass["'enq: MF - flush client'"]="Other" 1119 | eventClass["'enq: MF - flush prior error'"]="Other" 1120 | eventClass["'enq: MF - flush destroy'"]="Other" 1121 | eventClass["'latch: ILM activity tracking latch'"]="Other" 1122 | eventClass["'latch: ILM access tracking extent'"]="Other" 1123 | eventClass["'IM CU busy'"]="Other" 1124 | eventClass["'enq: ZQ - register'"]="Other" 1125 | eventClass["'enq: ZQ - quiesce'"]="Other" 1126 | eventClass["'IM ADG space pressure'"]="Other" 1127 | eventClass["'enq: TF - contention'"]="Other" 1128 | eventClass["'latch: lob segment hash table latch'"]="Other" 1129 | eventClass["'latch: lob segment query latch'"]="Other" 1130 | eventClass["'latch: lob segment dispenser latch'"]="Other" 1131 | eventClass["'Wait for shrink lock2'"]="Other" 1132 | eventClass["'Wait for shrink lock'"]="Other" 1133 | eventClass["'L1 validation'"]="Other" 1134 | eventClass["'Wait for TT enqueue'"]="Other" 1135 | eventClass["'kttm2d'"]="Other" 1136 | eventClass["'ktsambl'"]="Other" 1137 | eventClass["'ktfbtgex'"]="Other" 1138 | eventClass["'enq: DT - contention'"]="Other" 1139 | eventClass["'enq: TS - contention'"]="Other" 1140 | eventClass["'enq: FB - contention'"]="Other" 1141 | eventClass["'enq: SK - contention'"]="Other" 1142 | eventClass["'enq: DW - contention'"]="Other" 1143 | eventClass["'enq: SU - contention'"]="Other" 1144 | eventClass["'enq: TT - contention'"]="Other" 1145 | eventClass["'ktm: instance recovery'"]="Other" 1146 | eventClass["'instance state change'"]="Other" 1147 | eventClass["'enq: SM - contention'"]="Other" 1148 | eventClass["'enq: SJ - Slave Task Cancel'"]="Other" 1149 | eventClass["'Space Manager: slave messages'"]="Other" 1150 | eventClass["'enq: FH - contention'"]="Other" 1151 | eventClass["'latch: IM area scb latch'"]="Other" 1152 | eventClass["'latch: IM area sb latch'"]="Other" 1153 | eventClass["'enq: TZ - contention'"]="Other" 1154 | eventClass["'enq: IN - contention'"]="Other" 1155 | eventClass["'enq: ZB - contention'"]="Other" 1156 | eventClass["'latch: IM seg hdr latch'"]="Other" 1157 | eventClass["'latch: IM emb latch'"]="Other" 1158 | eventClass["'Analyze hash compare'"]="Other" 1159 | eventClass["'index block split'"]="Other" 1160 | eventClass["'internal test event (index split branch)'"]="Other" 1161 | eventClass["'internal test event (index split leaf)'"]="Other" 1162 | eventClass["'kdblil wait before retrying ORA-54'"]="Other" 1163 | eventClass["'dupl. cluster key'"]="Other" 1164 | eventClass["'internal test event (index merge)'"]="Other" 1165 | eventClass["'enq: DL - contention'"]="Other" 1166 | eventClass["'enq: HQ - contention'"]="Other" 1167 | eventClass["'enq: HP - contention'"]="Other" 1168 | eventClass["'Securefile Write Gather Cache Yield Process'"]="Other" 1169 | eventClass["'enq: KL - contention'"]="Other" 1170 | eventClass["'enq: WG - delete fso'"]="Other" 1171 | eventClass["'enq: SL - get lock'"]="Other" 1172 | eventClass["'enq: SL - escalate lock'"]="Other" 1173 | eventClass["'enq: SL - get lock for undo'"]="Other" 1174 | eventClass["'enq: ZH - compression analysis'"]="Other" 1175 | eventClass["'Compression analysis'"]="Other" 1176 | eventClass["'enq: SZ - contention'"]="Other" 1177 | eventClass["'enq: ZC - FS Seg contention'"]="Other" 1178 | eventClass["'enq: ZD - FS CU mod'"]="Other" 1179 | eventClass["'enq: SY - IM populate by other session'"]="Other" 1180 | eventClass["'enq: JZ - Join group dictionary'"]="Other" 1181 | eventClass["'IM populate completion'"]="Other" 1182 | eventClass["'IMXT Populate - drop HT'"]="Other" 1183 | eventClass["'IM FastStart deadlock retry'"]="Other" 1184 | eventClass["'IM ADO scheduler retry'"]="Other" 1185 | eventClass["'latch: IMFS defer write list'"]="Other" 1186 | eventClass["'IMFS Flush defer writes'"]="Other" 1187 | eventClass["'In-Memory populate: over pga limit'"]="Other" 1188 | eventClass["'latch: Column stats entry latch'"]="Other" 1189 | eventClass["'row cache cleanup'"]="Other" 1190 | eventClass["'row cache process'"]="Other" 1191 | eventClass["'enq: QA - contention'"]="Other" 1192 | eventClass["'enq: QB - contention'"]="Other" 1193 | eventClass["'enq: QC - contention'"]="Other" 1194 | eventClass["'enq: QD - contention'"]="Other" 1195 | eventClass["'enq: QE - contention'"]="Other" 1196 | eventClass["'enq: QF - contention'"]="Other" 1197 | eventClass["'enq: QG - contention'"]="Other" 1198 | eventClass["'enq: QH - contention'"]="Other" 1199 | eventClass["'enq: QI - contention'"]="Other" 1200 | eventClass["'enq: QJ - contention'"]="Other" 1201 | eventClass["'enq: QK - contention'"]="Other" 1202 | eventClass["'enq: QL - contention'"]="Other" 1203 | eventClass["'enq: QM - contention'"]="Other" 1204 | eventClass["'enq: QN - contention'"]="Other" 1205 | eventClass["'enq: QO - contention'"]="Other" 1206 | eventClass["'enq: QP - contention'"]="Other" 1207 | eventClass["'enq: QQ - contention'"]="Other" 1208 | eventClass["'enq: QR - contention'"]="Other" 1209 | eventClass["'enq: QS - contention'"]="Other" 1210 | eventClass["'enq: QT - contention'"]="Other" 1211 | eventClass["'enq: QU - contention'"]="Other" 1212 | eventClass["'enq: QV - contention'"]="Other" 1213 | eventClass["'enq: QX - contention'"]="Other" 1214 | eventClass["'enq: QY - contention'"]="Other" 1215 | eventClass["'enq: QZ - contention'"]="Other" 1216 | eventClass["'enq: DV - contention'"]="Other" 1217 | eventClass["'enq: SO - contention'"]="Other" 1218 | eventClass["'RAC: row cache lock nowait retry'"]="Other" 1219 | eventClass["'enq: VA - contention'"]="Other" 1220 | eventClass["'enq: VB - contention'"]="Other" 1221 | eventClass["'enq: VC - contention'"]="Other" 1222 | eventClass["'enq: VD - contention'"]="Other" 1223 | eventClass["'enq: VE - contention'"]="Other" 1224 | eventClass["'enq: VF - contention'"]="Other" 1225 | eventClass["'enq: VG - contention'"]="Other" 1226 | eventClass["'enq: VH - contention'"]="Other" 1227 | eventClass["'enq: VI - contention'"]="Other" 1228 | eventClass["'enq: VJ - contention'"]="Other" 1229 | eventClass["'enq: VK - contention'"]="Other" 1230 | eventClass["'enq: VL - contention'"]="Other" 1231 | eventClass["'enq: VM - contention'"]="Other" 1232 | eventClass["'enq: VN - contention'"]="Other" 1233 | eventClass["'enq: VO - contention'"]="Other" 1234 | eventClass["'enq: VP - contention'"]="Other" 1235 | eventClass["'enq: VQ - contention'"]="Other" 1236 | eventClass["'enq: VR - contention'"]="Other" 1237 | eventClass["'enq: VS - contention'"]="Other" 1238 | eventClass["'enq: VT - contention'"]="Other" 1239 | eventClass["'enq: VU - contention'"]="Other" 1240 | eventClass["'enq: VV - contention'"]="Other" 1241 | eventClass["'enq: VX - contention'"]="Other" 1242 | eventClass["'enq: VY - contention'"]="Other" 1243 | eventClass["'enq: VZ - contention'"]="Other" 1244 | eventClass["'enq: EA - contention'"]="Other" 1245 | eventClass["'enq: EB - contention'"]="Other" 1246 | eventClass["'enq: EC - contention'"]="Other" 1247 | eventClass["'enq: ED - contention'"]="Other" 1248 | eventClass["'enq: EE - contention'"]="Other" 1249 | eventClass["'enq: EF - contention'"]="Other" 1250 | eventClass["'enq: EG - contention'"]="Other" 1251 | eventClass["'enq: EH - contention'"]="Other" 1252 | eventClass["'enq: EI - contention'"]="Other" 1253 | eventClass["'enq: EJ - contention'"]="Other" 1254 | eventClass["'enq: EK - contention'"]="Other" 1255 | eventClass["'enq: EL - contention'"]="Other" 1256 | eventClass["'enq: EM - contention'"]="Other" 1257 | eventClass["'enq: EN - contention'"]="Other" 1258 | eventClass["'enq: EO - contention'"]="Other" 1259 | eventClass["'enq: EP - contention'"]="Other" 1260 | eventClass["'enq: EQ - contention'"]="Other" 1261 | eventClass["'enq: ER - contention'"]="Other" 1262 | eventClass["'enq: ES - contention'"]="Other" 1263 | eventClass["'enq: ET - contention'"]="Other" 1264 | eventClass["'enq: EU - contention'"]="Other" 1265 | eventClass["'enq: EV - contention'"]="Other" 1266 | eventClass["'enq: EX - contention'"]="Other" 1267 | eventClass["'enq: EY - contention'"]="Other" 1268 | eventClass["'enq: EZ - contention'"]="Other" 1269 | eventClass["'enq: LA - contention'"]="Other" 1270 | eventClass["'enq: LB - contention'"]="Other" 1271 | eventClass["'enq: LC - contention'"]="Other" 1272 | eventClass["'enq: LD - contention'"]="Other" 1273 | eventClass["'enq: LE - contention'"]="Other" 1274 | eventClass["'enq: LF - contention'"]="Other" 1275 | eventClass["'enq: LG - contention'"]="Other" 1276 | eventClass["'enq: LH - contention'"]="Other" 1277 | eventClass["'enq: LI - contention'"]="Other" 1278 | eventClass["'enq: LJ - contention'"]="Other" 1279 | eventClass["'enq: LK - contention'"]="Other" 1280 | eventClass["'enq: LL - contention'"]="Other" 1281 | eventClass["'enq: LM - contention'"]="Other" 1282 | eventClass["'enq: LN - contention'"]="Other" 1283 | eventClass["'enq: LO - contention'"]="Other" 1284 | eventClass["'enq: LP - contention'"]="Other" 1285 | eventClass["'enq: LQ - contention'"]="Other" 1286 | eventClass["'enq: LR - contention'"]="Other" 1287 | eventClass["'enq: LS - contention'"]="Other" 1288 | eventClass["'enq: LT - contention'"]="Other" 1289 | eventClass["'enq: LU - contention'"]="Other" 1290 | eventClass["'enq: LV - contention'"]="Other" 1291 | eventClass["'enq: LX - contention'"]="Other" 1292 | eventClass["'enq: LY - contention'"]="Other" 1293 | eventClass["'enq: LZ - contention'"]="Other" 1294 | eventClass["'enq: YA - contention'"]="Other" 1295 | eventClass["'enq: YB - contention'"]="Other" 1296 | eventClass["'enq: YC - contention'"]="Other" 1297 | eventClass["'enq: YD - contention'"]="Other" 1298 | eventClass["'enq: YE - contention'"]="Other" 1299 | eventClass["'enq: YF - contention'"]="Other" 1300 | eventClass["'enq: YG - contention'"]="Other" 1301 | eventClass["'enq: YH - contention'"]="Other" 1302 | eventClass["'enq: YI - contention'"]="Other" 1303 | eventClass["'enq: YJ - contention'"]="Other" 1304 | eventClass["'enq: YK - contention'"]="Other" 1305 | eventClass["'enq: YL - contention'"]="Other" 1306 | eventClass["'enq: YM - contention'"]="Other" 1307 | eventClass["'enq: YN - contention'"]="Other" 1308 | eventClass["'enq: YO - contention'"]="Other" 1309 | eventClass["'enq: YP - contention'"]="Other" 1310 | eventClass["'enq: YQ - contention'"]="Other" 1311 | eventClass["'enq: YR - contention'"]="Other" 1312 | eventClass["'enq: YS - contention'"]="Other" 1313 | eventClass["'enq: YT - contention'"]="Other" 1314 | eventClass["'enq: YU - contention'"]="Other" 1315 | eventClass["'enq: YV - contention'"]="Other" 1316 | eventClass["'enq: YX - contention'"]="Other" 1317 | eventClass["'enq: YY - contention'"]="Other" 1318 | eventClass["'enq: YZ - contention'"]="Other" 1319 | eventClass["'enq: GA - contention'"]="Other" 1320 | eventClass["'enq: GB - contention'"]="Other" 1321 | eventClass["'enq: GC - contention'"]="Other" 1322 | eventClass["'enq: GD - contention'"]="Other" 1323 | eventClass["'enq: GE - contention'"]="Other" 1324 | eventClass["'enq: GF - contention'"]="Other" 1325 | eventClass["'enq: GG - contention'"]="Other" 1326 | eventClass["'enq: GH - contention'"]="Other" 1327 | eventClass["'enq: GI - contention'"]="Other" 1328 | eventClass["'enq: GJ - contention'"]="Other" 1329 | eventClass["'enq: GK - contention'"]="Other" 1330 | eventClass["'enq: GL - contention'"]="Other" 1331 | eventClass["'enq: GM - contention'"]="Other" 1332 | eventClass["'enq: GN - contention'"]="Other" 1333 | eventClass["'enq: GO - contention'"]="Other" 1334 | eventClass["'enq: GP - contention'"]="Other" 1335 | eventClass["'enq: GQ - contention'"]="Other" 1336 | eventClass["'enq: GR - contention'"]="Other" 1337 | eventClass["'enq: GS - contention'"]="Other" 1338 | eventClass["'enq: GT - contention'"]="Other" 1339 | eventClass["'enq: GU - contention'"]="Other" 1340 | eventClass["'enq: GV - contention'"]="Other" 1341 | eventClass["'enq: GX - contention'"]="Other" 1342 | eventClass["'enq: GY - contention'"]="Other" 1343 | eventClass["'enq: GZ - contention'"]="Other" 1344 | eventClass["'enq: NA - contention'"]="Other" 1345 | eventClass["'enq: NB - contention'"]="Other" 1346 | eventClass["'enq: NC - contention'"]="Other" 1347 | eventClass["'enq: ND - contention'"]="Other" 1348 | eventClass["'enq: NE - contention'"]="Other" 1349 | eventClass["'enq: NF - contention'"]="Other" 1350 | eventClass["'enq: NG - contention'"]="Other" 1351 | eventClass["'enq: NH - contention'"]="Other" 1352 | eventClass["'enq: NI - contention'"]="Other" 1353 | eventClass["'enq: NJ - contention'"]="Other" 1354 | eventClass["'enq: NK - contention'"]="Other" 1355 | eventClass["'enq: NL - contention'"]="Other" 1356 | eventClass["'enq: NM - contention'"]="Other" 1357 | eventClass["'enq: NN - contention'"]="Other" 1358 | eventClass["'enq: NO - contention'"]="Other" 1359 | eventClass["'enq: NP - contention'"]="Other" 1360 | eventClass["'enq: NQ - contention'"]="Other" 1361 | eventClass["'enq: NR - contention'"]="Other" 1362 | eventClass["'enq: NS - contention'"]="Other" 1363 | eventClass["'enq: NT - contention'"]="Other" 1364 | eventClass["'enq: NU - contention'"]="Other" 1365 | eventClass["'enq: NV - contention'"]="Other" 1366 | eventClass["'enq: NX - contention'"]="Other" 1367 | eventClass["'enq: NY - contention'"]="Other" 1368 | eventClass["'enq: NZ - contention'"]="Other" 1369 | eventClass["'enq: IV - contention'"]="Other" 1370 | eventClass["'enq: TP - contention'"]="Other" 1371 | eventClass["'enq: RW - MV metadata contention'"]="Other" 1372 | eventClass["'enq: OC - contention'"]="Other" 1373 | eventClass["'enq: OL - contention'"]="Other" 1374 | eventClass["'kkdlgon'"]="Other" 1375 | eventClass["'kkdlsipon'"]="Other" 1376 | eventClass["'kkdlhpon'"]="Other" 1377 | eventClass["'Remote Tool Request Reply'"]="Other" 1378 | eventClass["'Remote Tool Request Free List'"]="Other" 1379 | eventClass["'kgltwait'"]="Other" 1380 | eventClass["'kksfbc research'"]="Other" 1381 | eventClass["'kksscl hash split'"]="Other" 1382 | eventClass["'kksfbc child completion'"]="Other" 1383 | eventClass["'enq: CU - contention'"]="Other" 1384 | eventClass["'enq: AE - lock'"]="Other" 1385 | eventClass["'Revoke: get object'"]="Other" 1386 | eventClass["'enq: PF - contention'"]="Other" 1387 | eventClass["'enq: PZ - flush passwordfile metadata'"]="Other" 1388 | eventClass["'enq: PZ - load passwordfile metadata'"]="Other" 1389 | eventClass["'enq: IL - contention'"]="Other" 1390 | eventClass["'enq: CL - drop label'"]="Other" 1391 | eventClass["'enq: CL - compare labels'"]="Other" 1392 | eventClass["'enq: SG - OLS Add Group'"]="Other" 1393 | eventClass["'enq: SG - OLS Create Group'"]="Other" 1394 | eventClass["'enq: SG - OLS Drop Group'"]="Other" 1395 | eventClass["'enq: SG - OLS Alter Group Parent'"]="Other" 1396 | eventClass["'enq: OP - OLS Store user entries'"]="Other" 1397 | eventClass["'enq: OP - OLS Cleanup unused profiles'"]="Other" 1398 | eventClass["'move audit tablespace delay'"]="Other" 1399 | eventClass["'enq: CC - decryption'"]="Other" 1400 | eventClass["'enq: MK - contention'"]="Other" 1401 | eventClass["'enq: OW - initialization'"]="Other" 1402 | eventClass["'enq: OW - termination'"]="Other" 1403 | eventClass["'enq: RK - set key'"]="Other" 1404 | eventClass["'enq: RK - queue wallet and TS keys'"]="Other" 1405 | eventClass["'enq: HC - HSM cache write'"]="Other" 1406 | eventClass["'enq: HC - HSM cache read'"]="Other" 1407 | eventClass["'enq: RL - RAC wallet lock'"]="Other" 1408 | eventClass["'enq: PJ - modify DV policy'"]="Other" 1409 | eventClass["'enq: PJ - read DV policy'"]="Other" 1410 | eventClass["'Row cache for Grant or Revoke'"]="Other" 1411 | eventClass["'enq: ZZ - update hash tables'"]="Other" 1412 | eventClass["'Failed Logon Delay'"]="Other" 1413 | eventClass["'enq: ZA - add std audit table partition'"]="Other" 1414 | eventClass["'enq: ZF - add fga audit table partition'"]="Other" 1415 | eventClass["'enq: ZS - excl access to spill audit file'"]="Other" 1416 | eventClass["'enq: UT - transfer audit records'"]="Other" 1417 | eventClass["'enq: PA - modify a privilege capture'"]="Other" 1418 | eventClass["'enq: PA - read a privilege capture'"]="Other" 1419 | eventClass["'enq: PC - update privilege capture info'"]="Other" 1420 | eventClass["'enq: PC - read privilege capture info'"]="Other" 1421 | eventClass["'enq: KZ - contention'"]="Other" 1422 | eventClass["'enq: DX - contention'"]="Other" 1423 | eventClass["'enq: DR - contention'"]="Other" 1424 | eventClass["'pending global transaction(s)'"]="Other" 1425 | eventClass["'free global transaction table entry'"]="Other" 1426 | eventClass["'library cache revalidation'"]="Other" 1427 | eventClass["'library cache shutdown'"]="Other" 1428 | eventClass["'BFILE closure'"]="Other" 1429 | eventClass["'BFILE check if exists'"]="Other" 1430 | eventClass["'BFILE check if open'"]="Other" 1431 | eventClass["'BFILE get length'"]="Other" 1432 | eventClass["'BFILE get name object'"]="Other" 1433 | eventClass["'BFILE get path object'"]="Other" 1434 | eventClass["'BFILE open'"]="Other" 1435 | eventClass["'BFILE internal seek'"]="Other" 1436 | eventClass["'resmgr:internal state cleanup'"]="Other" 1437 | eventClass["'xdb schema cache initialization'"]="Other" 1438 | eventClass["'ASM cluster file access'"]="Other" 1439 | eventClass["'CSS initialization'"]="Other" 1440 | eventClass["'CSS group registration'"]="Other" 1441 | eventClass["'CSS group membership query'"]="Other" 1442 | eventClass["'CSS operation: data query'"]="Other" 1443 | eventClass["'CSS operation: data update'"]="Other" 1444 | eventClass["'CSS Xgrp shared operation'"]="Other" 1445 | eventClass["'CSS operation: query'"]="Other" 1446 | eventClass["'CSS operation: action'"]="Other" 1447 | eventClass["'CSS operation: diagnostic'"]="Other" 1448 | eventClass["'GIPC operation: dump'"]="Other" 1449 | eventClass["'GPnP Initialization'"]="Other" 1450 | eventClass["'GPnP Termination'"]="Other" 1451 | eventClass["'GPnP Get Item'"]="Other" 1452 | eventClass["'GPnP Set Item'"]="Other" 1453 | eventClass["'GPnP Get Error'"]="Other" 1454 | eventClass["'ADR file lock'"]="Other" 1455 | eventClass["'ADR block file read'"]="Other" 1456 | eventClass["'ADR block file write'"]="Other" 1457 | eventClass["'CRS call completion'"]="Other" 1458 | eventClass["'ASM: OFS Cluster membership update'"]="Other" 1459 | eventClass["'dispatcher shutdown'"]="Other" 1460 | eventClass["'latch: virtual circuit queues'"]="Other" 1461 | eventClass["'listen endpoint status'"]="Other" 1462 | eventClass["'listener registration dump'"]="Other" 1463 | eventClass["'OJVM: Generic'"]="Other" 1464 | eventClass["'select wait'"]="Other" 1465 | eventClass["'jobq slave shutdown wait'"]="Other" 1466 | eventClass["'jobq slave TJ process wait'"]="Other" 1467 | eventClass["'job scheduler coordinator slave wait'"]="Other" 1468 | eventClass["'enq: JD - contention'"]="Other" 1469 | eventClass["'enq: JQ - contention'"]="Other" 1470 | eventClass["'enq: OD - Serializing DDLs'"]="Other" 1471 | eventClass["'RAC referential constraint parent lock'"]="Other" 1472 | eventClass["'RAC: constraint DDL lock'"]="Other" 1473 | eventClass["'kkshgnc reloop'"]="Other" 1474 | eventClass["'optimizer stats update retry'"]="Other" 1475 | eventClass["'wait active processes'"]="Other" 1476 | eventClass["'SUPLOG PL wait for inflight pragma-d PL/SQL'"]="Other" 1477 | eventClass["'enq: MD - contention'"]="Other" 1478 | eventClass["'enq: MS - contention'"]="Other" 1479 | eventClass["'wait for kkpo ref-partitioning *TEST EVENT*'"]="Other" 1480 | eventClass["'RAC reference partitioning descendants lock'"]="Other" 1481 | eventClass["'enq: AP - contention'"]="Other" 1482 | eventClass["'enq: RH - quarantine'"]="Other" 1483 | eventClass["'PX slave connection'"]="Other" 1484 | eventClass["'PX slave release'"]="Other" 1485 | eventClass["'PX Send Wait'"]="Other" 1486 | eventClass["'PX qref latch'"]="Other" 1487 | eventClass["'PX server shutdown'"]="Other" 1488 | eventClass["'PX create server'"]="Other" 1489 | eventClass["'PX signal server'"]="Other" 1490 | eventClass["'PX Deq: Join ACK'"]="Other" 1491 | eventClass["'PX Deq Credit: free buffer'"]="Other" 1492 | eventClass["'PX Deq: Test for msg'"]="Other" 1493 | eventClass["'PX Deq: Test for credit'"]="Other" 1494 | eventClass["'PX Deq: Signal ACK RSG'"]="Other" 1495 | eventClass["'PX Deq: Signal ACK EXT'"]="Other" 1496 | eventClass["'PX Deq: reap credit'"]="Other" 1497 | eventClass["'PX Nsq: PQ descriptor query'"]="Other" 1498 | eventClass["'PX Nsq: PQ load info query'"]="Other" 1499 | eventClass["'PX Deq Credit: Session Stats'"]="Other" 1500 | eventClass["'PX Deq: Slave Session Stats'"]="Other" 1501 | eventClass["'PX Deq: Slave Join Frag'"]="Other" 1502 | eventClass["'enq: PI - contention'"]="Other" 1503 | eventClass["'enq: PS - contention'"]="Other" 1504 | eventClass["'enq: DA - Slave Process Array'"]="Other" 1505 | eventClass["'latch: parallel query alloc buffer'"]="Other" 1506 | eventClass["'kxfxse'"]="Other" 1507 | eventClass["'kxfxsp'"]="Other" 1508 | eventClass["'PX Deq: Table Q qref'"]="Other" 1509 | eventClass["'PX Deq: Table Q Get Keys'"]="Other" 1510 | eventClass["'PX Deq: Table Q Close'"]="Other" 1511 | eventClass["'GV$: slave acquisition retry wait time'"]="Other" 1512 | eventClass["'PX hash elem being inserted'"]="Other" 1513 | eventClass["'latch: PX hash array latch'"]="Other" 1514 | eventClass["'enq: AY - contention'"]="Other" 1515 | eventClass["'enq: TO - contention'"]="Other" 1516 | eventClass["'enq: ZP - Private Temporary Table'"]="Other" 1517 | eventClass["'IMCDT end of scans cleanup'"]="Other" 1518 | eventClass["'enq: IT - contention'"]="Other" 1519 | eventClass["'enq: BF - allocation contention'"]="Other" 1520 | eventClass["'enq: BF - PMON Join Filter cleanup'"]="Other" 1521 | eventClass["'enq: RD - RAC load'"]="Other" 1522 | eventClass["'PX key vector flatten'"]="Other" 1523 | eventClass["'PX hash key vector cell'"]="Other" 1524 | eventClass["'PX hash key vector merge'"]="Other" 1525 | eventClass["'PX key vector use load'"]="Other" 1526 | eventClass["'PX key vector create dgk init'"]="Other" 1527 | eventClass["'enq: MG - MGA allocation'"]="Other" 1528 | eventClass["'enq: MG - client shared context allocation'"]="Other" 1529 | eventClass["'timer in sksawat'"]="Other" 1530 | eventClass["'scginq AST call'"]="Other" 1531 | eventClass["'kupp process wait'"]="Other" 1532 | eventClass["'Kupp process shutdown'"]="Other" 1533 | eventClass["'Data Pump slave startup'"]="Other" 1534 | eventClass["'Data Pump slave init'"]="Other" 1535 | eventClass["'enq: KP - contention'"]="Other" 1536 | eventClass["'Replication Dequeue '"]="Other" 1537 | eventClass["'knpc_acwm_AwaitChangedWaterMark'"]="Other" 1538 | eventClass["'knpc_anq_AwaitNonemptyQueue'"]="Other" 1539 | eventClass["'knpsmai'"]="Other" 1540 | eventClass["'enq: SR - contention'"]="Other" 1541 | eventClass["'enq: RG - Apply coord start/stop'"]="Other" 1542 | eventClass["'REPL Capture/Apply: database startup'"]="Other" 1543 | eventClass["'REPL Capture/Apply: miscellaneous'"]="Other" 1544 | eventClass["'enq: SI - contention'"]="Other" 1545 | eventClass["'REPL Capture/Apply: RAC inter-instance ack'"]="Other" 1546 | eventClass["'enq: IA - contention'"]="Other" 1547 | eventClass["'enq: JI - contention'"]="Other" 1548 | eventClass["'qerex_gdml'"]="Other" 1549 | eventClass["'enq: AT - contention'"]="Other" 1550 | eventClass["'Retry DB Audit Record Insertion Delay'"]="Other" 1551 | eventClass["'opishd'"]="Other" 1552 | eventClass["'secure protocol error delay'"]="Other" 1553 | eventClass["'kpodplck wait before retrying ORA-54'"]="Other" 1554 | eventClass["'enq: CQ - contention'"]="Other" 1555 | eventClass["'wait for EMON to spawn'"]="Other" 1556 | eventClass["'EMON termination'"]="Other" 1557 | eventClass["'enq: AZ - AQ_SRVNTFN_Q Creation'"]="Other" 1558 | eventClass["'Emon coordinator startup'"]="Other" 1559 | eventClass["'enq: SE - contention'"]="Other" 1560 | eventClass["'tsm with timeout'"]="Other" 1561 | eventClass["'Streams AQ: waiting for busy instance for instance_name'"]="Other" 1562 | eventClass["'Streams AQ: index block pin/row lock'"]="Other" 1563 | eventClass["'enq: TQ - TM contention'"]="Other" 1564 | eventClass["'enq: TQ - DDL contention'"]="Other" 1565 | eventClass["'enq: TQ - INI contention'"]="Other" 1566 | eventClass["'enq: TQ - DDL-INI contention'"]="Other" 1567 | eventClass["'enq: TQ - INI sq contention'"]="Other" 1568 | eventClass["'enq: TQ - MC free sync at cross job start'"]="Other" 1569 | eventClass["'enq: TQ - MC free sync at cross job stop'"]="Other" 1570 | eventClass["'enq: TQ - MC free sync at cross job end'"]="Other" 1571 | eventClass["'enq: TQ - MC free sync at export subshard'"]="Other" 1572 | eventClass["'enq: TQ - create eviction table'"]="Other" 1573 | eventClass["'enq: TQ - TM Job cache initialization'"]="Other" 1574 | eventClass["'enq: TQ - TM Job cache use'"]="Other" 1575 | eventClass["'enq: TQ - sq TM contention'"]="Other" 1576 | eventClass["'enq: TQ - LB drop volatile shard'"]="Other" 1577 | eventClass["'AQ reload SO release'"]="Other" 1578 | eventClass["'enq: RQ - Enqueue commit uncached'"]="Other" 1579 | eventClass["'enq: RQ - Enqueue commit cached'"]="Other" 1580 | eventClass["'enq: RQ - Dequeue update scn'"]="Other" 1581 | eventClass["'enq: RQ - Parallel cross update scn'"]="Other" 1582 | eventClass["'enq: RQ - Cross update scn'"]="Other" 1583 | eventClass["'enq: RQ - Trucate subshard'"]="Other" 1584 | eventClass["'enq: RQ - Cross export subshard'"]="Other" 1585 | eventClass["'enq: RQ - Cross import subshard'"]="Other" 1586 | eventClass["'enq: RQ - Free shadow shard'"]="Other" 1587 | eventClass["'enq: RQ - AQ indexed cached commit'"]="Other" 1588 | eventClass["'enq: RQ - AQ uncached commit WM update'"]="Other" 1589 | eventClass["'enq: RQ - AQ uncached dequeue'"]="Other" 1590 | eventClass["'enq: RQ - AQ Eq Ptn Mapping'"]="Other" 1591 | eventClass["'enq: RQ - AQ Dq Ptn Mapping'"]="Other" 1592 | eventClass["'enq: RQ - AQ Trnc mem free'"]="Other" 1593 | eventClass["'enq: RQ - AQ Trnc mem free remote'"]="Other" 1594 | eventClass["'enq: RQ - AQ Trnc mem free by LB'"]="Other" 1595 | eventClass["'enq: RQ - AQ Trnc mem free by CP'"]="Other" 1596 | eventClass["'enq: RQ - AQ Enq commit incarnation wrap'"]="Other" 1597 | eventClass["'enq: RQ - AQ Rule evaluation segment load'"]="Other" 1598 | eventClass["'enq: RQ - AQ Evict: block truncate'"]="Other" 1599 | eventClass["'enq: RQ - AQ Unevict PGA: setup subscriber'"]="Other" 1600 | eventClass["'enq: RQ - AQ Unevict PGA: Queue View'"]="Other" 1601 | eventClass["'enq: RQ - AQ Shid Gen'"]="Other" 1602 | eventClass["'enq: RQ - AQ Enq commit block truncate'"]="Other" 1603 | eventClass["'enq: RQ - AQ Cross update scn for delay'"]="Other" 1604 | eventClass["'enq: RQ - AQ Cross Shard mem free'"]="Other" 1605 | eventClass["'enq: RQ - AQ rollback retry count update'"]="Other" 1606 | eventClass["'enq: RQ - AQ cached commit WM update'"]="Other" 1607 | eventClass["'enq: RQ - AQ cached dequeue by condition'"]="Other" 1608 | eventClass["'AQ propagation connection'"]="Other" 1609 | eventClass["'enq: KR - Drop rule force'"]="Other" 1610 | eventClass["'enq: KR - Add rule to ruleset'"]="Other" 1611 | eventClass["'enq: KR - Remove rule from ruleset'"]="Other" 1612 | eventClass["'enq: DP - contention'"]="Other" 1613 | eventClass["'enq: MH - contention'"]="Other" 1614 | eventClass["'enq: ML - contention'"]="Other" 1615 | eventClass["'enq: PH - contention'"]="Other" 1616 | eventClass["'enq: SF - contention'"]="Other" 1617 | eventClass["'enq: XH - contention'"]="Other" 1618 | eventClass["'enq: WA - contention'"]="Other" 1619 | eventClass["'Streams AQ: QueueTable kgl locks'"]="Other" 1620 | eventClass["'AQ spill debug idle'"]="Other" 1621 | eventClass["'AQ master shutdown'"]="Other" 1622 | eventClass["'AQPC: new master'"]="Other" 1623 | eventClass["'AQ Background Master: slave start'"]="Other" 1624 | eventClass["'enq: AQ - QPT fg map dqpt'"]="Other" 1625 | eventClass["'enq: AQ - QPT fg map qpt'"]="Other" 1626 | eventClass["'enq: PQ - QPT add qpt'"]="Other" 1627 | eventClass["'enq: PQ - QPT drop qpt'"]="Other" 1628 | eventClass["'enq: PQ - QPT add dqpt'"]="Other" 1629 | eventClass["'enq: PQ - QPT drop dqpt'"]="Other" 1630 | eventClass["'enq: PQ - QPT add qpt fg'"]="Other" 1631 | eventClass["'enq: PQ - QPT add dqpt fg'"]="Other" 1632 | eventClass["'enq: PQ - QPT Trunc'"]="Other" 1633 | eventClass["'enq: PQ - QPT LB Trunc sync'"]="Other" 1634 | eventClass["'enq: PQ - QPT XSTART Trunc sync'"]="Other" 1635 | eventClass["'AQ master: time mgmt/task cleanup'"]="Other" 1636 | eventClass["'AQ slave: time mgmt/task cleanup'"]="Other" 1637 | eventClass["'enq: BA - SUBBMAP contention'"]="Other" 1638 | eventClass["'AQ:non durable subscriber add or drop'"]="Other" 1639 | eventClass["'AQ: RAC AQ Network'"]="Other" 1640 | eventClass["'latch: AQ Sharded subscriber statistics latch'"]="Other" 1641 | eventClass["'AQ OPT Operation Complete'"]="Other" 1642 | eventClass["'latch: AQ OPT Background Master Latch'"]="Other" 1643 | eventClass["'enq: CX - TEXT: Index Specific Lock'"]="Other" 1644 | eventClass["'enq: OT - TEXT: Generic Lock'"]="Other" 1645 | eventClass["'XDB SGA initialization'"]="Other" 1646 | eventClass["'enq: XC - XDB Configuration'"]="Other" 1647 | eventClass["'NFS read delegation outstanding'"]="Other" 1648 | eventClass["'Data Guard Broker Wait'"]="Other" 1649 | eventClass["'enq: RF - synch: DG Broker metadata'"]="Other" 1650 | eventClass["'enq: RF - atomicity'"]="Other" 1651 | eventClass["'enq: RF - Broker Chief Lock'"]="Other" 1652 | eventClass["'enq: RF - synchronization: aifo master'"]="Other" 1653 | eventClass["'enq: RF - new AI'"]="Other" 1654 | eventClass["'enq: RF - synchronization: critical ai'"]="Other" 1655 | eventClass["'enq: RF - RF - Database Automatic Disable'"]="Other" 1656 | eventClass["'enq: RF - FSFO Observer Heartbeat'"]="Other" 1657 | eventClass["'enq: RF - DG Broker Current File ID'"]="Other" 1658 | eventClass["'enq: RF - FSFO Primary Shutdown suspended'"]="Other" 1659 | eventClass["'enq: RF - Broker State Lock'"]="Other" 1660 | eventClass["'enq: RF - FSFO string buffer'"]="Other" 1661 | eventClass["'enq: RF - Broker NSV Lock'"]="Other" 1662 | eventClass["'enq: RF - Broker LSBY FO Lock'"]="Other" 1663 | eventClass["'PX Deq: OLAP Update Reply'"]="Other" 1664 | eventClass["'PX Deq: OLAP Update Execute'"]="Other" 1665 | eventClass["'PX Deq: OLAP Update Close'"]="Other" 1666 | eventClass["'enq: AW - AW$ table lock'"]="Other" 1667 | eventClass["'enq: AW - AW state lock'"]="Other" 1668 | eventClass["'enq: AW - user access for AW'"]="Other" 1669 | eventClass["'enq: AW - AW generation lock'"]="Other" 1670 | eventClass["'enq: AG - contention'"]="Other" 1671 | eventClass["'enq: AO - contention'"]="Other" 1672 | eventClass["'enq: OQ - xsoqhiAlloc'"]="Other" 1673 | eventClass["'enq: OQ - xsoqhiFlush'"]="Other" 1674 | eventClass["'enq: OQ - xsoq*histrecb'"]="Other" 1675 | eventClass["'enq: OQ - xsoqhiClose'"]="Other" 1676 | eventClass["'enq: OQ - xsoqhistrecb'"]="Other" 1677 | eventClass["'enq: IZ - contention'"]="Other" 1678 | eventClass["'enq: AM - client registration'"]="Other" 1679 | eventClass["'enq: AM - shutdown'"]="Other" 1680 | eventClass["'enq: AM - rollback COD reservation'"]="Other" 1681 | eventClass["'enq: AM - background COD reservation'"]="Other" 1682 | eventClass["'enq: AM - ASM cache freeze'"]="Other" 1683 | eventClass["'enq: AM - ASM ACD Relocation'"]="Other" 1684 | eventClass["'enq: AM - group use'"]="Other" 1685 | eventClass["'enq: AM - group block'"]="Other" 1686 | eventClass["'enq: AM - ASM File Destroy'"]="Other" 1687 | eventClass["'enq: AM - ASM User'"]="Other" 1688 | eventClass["'enq: AM - ASM Password File Update'"]="Other" 1689 | eventClass["'enq: AM - ASM Amdu Dump'"]="Other" 1690 | eventClass["'enq: AM - disk offline'"]="Other" 1691 | eventClass["'enq: AM - ASM reserved'"]="Other" 1692 | eventClass["'enq: AM - block repair'"]="Other" 1693 | eventClass["'enq: AM - ASM disk based alloc/dealloc'"]="Other" 1694 | eventClass["'enq: AM - ASM file descriptor'"]="Other" 1695 | eventClass["'enq: AM - ASM file relocation'"]="Other" 1696 | eventClass["'enq: AM - ASM SR relocation'"]="Other" 1697 | eventClass["'enq: AM - ASM Grow ACD'"]="Other" 1698 | eventClass["'enq: AM - ASM DD update SrRloc'"]="Other" 1699 | eventClass["'enq: AM - ASM file chown'"]="Other" 1700 | eventClass["'enq: AM - Register with IOServer'"]="Other" 1701 | eventClass["'enq: AM - ASM metadata replication'"]="Other" 1702 | eventClass["'enq: AM - SR slice Clear/Mark'"]="Other" 1703 | eventClass["'enq: AM - Enable Remote ASM'"]="Other" 1704 | eventClass["'enq: AM - Disable Remote ASM'"]="Other" 1705 | eventClass["'enq: AM - Credential creation'"]="Other" 1706 | eventClass["'enq: AM - Credential deletion'"]="Other" 1707 | eventClass["'enq: AM - ASM file access req'"]="Other" 1708 | eventClass["'enq: AM - ASM client operation'"]="Other" 1709 | eventClass["'enq: AM - ASM client check'"]="Other" 1710 | eventClass["'enq: AM - ASM ATB COD creation'"]="Other" 1711 | eventClass["'enq: AM - Create default DG key in OCR'"]="Other" 1712 | eventClass["'enq: AM - ASM Audit file Delete'"]="Other" 1713 | eventClass["'enq: AM - ASM Audit file Cleanup'"]="Other" 1714 | eventClass["'enq: AM - ASM VAT migration'"]="Other" 1715 | eventClass["'enq: AM - Update SR nomark flag'"]="Other" 1716 | eventClass["'enq: AM - ASM VAL cache'"]="Other" 1717 | eventClass["'enq: AM - ASM SR Segment Reuse'"]="Other" 1718 | eventClass["'enq: AM - ASM SR Segment Reuse Lookup'"]="Other" 1719 | eventClass["'enq: AM - ASM SR Batch Allocation'"]="Other" 1720 | eventClass["'enq: AM - ASM Sparse Disk IOCTL'"]="Other" 1721 | eventClass["'enq: AM - ASM VAM Active'"]="Other" 1722 | eventClass["'enq: AM - ASM Split Mirror File Create'"]="Other" 1723 | eventClass["'enq: AM - ASM Split Mirror File Delete'"]="Other" 1724 | eventClass["'enq: AM - ASM Mirror Prepare'"]="Other" 1725 | eventClass["'enq: AM - ASM Mirror Split'"]="Other" 1726 | eventClass["'enq: AM - ASM Drop Mirror'"]="Other" 1727 | eventClass["'enq: AM - ASM PDB Mirror Split'"]="Other" 1728 | eventClass["'enq: AM - DB Mirror Prepare'"]="Other" 1729 | eventClass["'enq: AM - DB Drop Mirror Copy'"]="Other" 1730 | eventClass["'enq: AM - DB Mirror Split'"]="Other" 1731 | eventClass["'enq: AM - PDB Mirror Split'"]="Other" 1732 | eventClass["'enq: AM - Create Prepare Child file group'"]="Other" 1733 | eventClass["'enq: AM - Change file group redundancy'"]="Other" 1734 | eventClass["'enq: AM - ASM Split Mirror ODM File Crt'"]="Other" 1735 | eventClass["'enq: AM - ASM Split Mirror ODM File Del'"]="Other" 1736 | eventClass["'enq: AM - ASMB Startup'"]="Other" 1737 | eventClass["'enq: AM - ASMB Renew'"]="Other" 1738 | eventClass["'enq: AM - ASM: group unblock'"]="Other" 1739 | eventClass["'enq: AM - ASM file create'"]="Other" 1740 | eventClass["'enq: AM - ASM ATE conversion'"]="Other" 1741 | eventClass["'enq: AM - ASM resync from ATE'"]="Other" 1742 | eventClass["'enq: AM - ASM Split Status Write'"]="Other" 1743 | eventClass["'enq: AM - ASM Split Status Read'"]="Other" 1744 | eventClass["'enq: AM - ASM Client Assisted Offline'"]="Other" 1745 | eventClass["'enq: AM - ASM Client Assisted Offline Chk'"]="Other" 1746 | eventClass["'ASM internal hang test'"]="Other" 1747 | eventClass["'ASM Instance startup'"]="Other" 1748 | eventClass["'buffer busy'"]="Other" 1749 | eventClass["'buffer freelistbusy'"]="Other" 1750 | eventClass["'buffer rememberlist busy'"]="Other" 1751 | eventClass["'buffer writeList full'"]="Other" 1752 | eventClass["'no free buffers'"]="Other" 1753 | eventClass["'buffer write wait'"]="Other" 1754 | eventClass["'buffer invalidation wait'"]="Other" 1755 | eventClass["'buffer dirty disabled'"]="Other" 1756 | eventClass["'ASM metadata cache frozen'"]="Other" 1757 | eventClass["'enq: FZ - contention'"]="Other" 1758 | eventClass["'enq: CM - gate'"]="Other" 1759 | eventClass["'enq: CM - instance'"]="Other" 1760 | eventClass["'enq: CM - diskgroup dismount'"]="Other" 1761 | eventClass["'enq: XQ - recovery'"]="Other" 1762 | eventClass["'enq: XQ - relocation'"]="Other" 1763 | eventClass["'enq: XQ - purification'"]="Other" 1764 | eventClass["'enq: AD - allocate AU'"]="Other" 1765 | eventClass["'enq: AD - deallocate AU'"]="Other" 1766 | eventClass["'enq: AD - relocate AU'"]="Other" 1767 | eventClass["'enq: AD - flush writes to AU'"]="Other" 1768 | eventClass["'enq: DO - disk online'"]="Other" 1769 | eventClass["'enq: DO - disk online recovery'"]="Other" 1770 | eventClass["'enq: DO - Staleness Registry create'"]="Other" 1771 | eventClass["'enq: DO - startup of MARK process'"]="Other" 1772 | eventClass["'extent map load/unlock'"]="Other" 1773 | eventClass["'extent map locked'"]="Other" 1774 | eventClass["'enq: XL - fault extent map'"]="Other" 1775 | eventClass["'Sync ASM rebalance'"]="Other" 1776 | eventClass["'Sync ASM discovery'"]="Other" 1777 | eventClass["'File Directory Use'"]="Other" 1778 | eventClass["'enq: DG - contention'"]="Other" 1779 | eventClass["'enq: DD - contention'"]="Other" 1780 | eventClass["'enq: HD - contention'"]="Other" 1781 | eventClass["'enq: DQ - contention'"]="Other" 1782 | eventClass["'ASM ioctl to dematerialize blocks'"]="Other" 1783 | eventClass["'enq: DN - contention'"]="Other" 1784 | eventClass["'Cluster stabilization wait'"]="Other" 1785 | eventClass["'Cluster Suspension wait'"]="Other" 1786 | eventClass["'ASMB cookie valid check'"]="Other" 1787 | eventClass["'ASM background starting'"]="Other" 1788 | eventClass["'CSS cookie check'"]="Other" 1789 | eventClass["'ASM db client exists'"]="Other" 1790 | eventClass["'ASM file metadata operation'"]="Other" 1791 | eventClass["'ASM network foreground exits'"]="Other" 1792 | eventClass["'ASM check disk slices'"]="Other" 1793 | eventClass["'enq: XB - contention'"]="Other" 1794 | eventClass["'enq: FA - access file'"]="Other" 1795 | eventClass["'enq: RX - relocate extent'"]="Other" 1796 | eventClass["'enq: RX - unlock extent'"]="Other" 1797 | eventClass["'enq: AR - contention'"]="Other" 1798 | eventClass["'enq: AH - contention'"]="Other" 1799 | eventClass["'log write(odd)'"]="Other" 1800 | eventClass["'log write(even)'"]="Other" 1801 | eventClass["'checkpoint advanced'"]="Other" 1802 | eventClass["'enq: FR - contention'"]="Other" 1803 | eventClass["'enq: FR - use the thread'"]="Other" 1804 | eventClass["'enq: FR - recover the thread'"]="Other" 1805 | eventClass["'enq: FG - serialize ACD relocate'"]="Other" 1806 | eventClass["'enq: FG - FG redo generation enq race'"]="Other" 1807 | eventClass["'enq: FG - LGWR redo generation enq race'"]="Other" 1808 | eventClass["'enq: FT - allow LGWR writes'"]="Other" 1809 | eventClass["'enq: FT - disable LGWR writes'"]="Other" 1810 | eventClass["'enq: FC - open an ACD thread'"]="Other" 1811 | eventClass["'enq: FC - recover an ACD thread'"]="Other" 1812 | eventClass["'enq: FX - issue ACD Xtnt Relocation CIC'"]="Other" 1813 | eventClass["'rollback operations block full'"]="Other" 1814 | eventClass["'rollback operations active'"]="Other" 1815 | eventClass["'enq: RB - contention'"]="Other" 1816 | eventClass["'ASM: MARK subscribe to msg channel'"]="Other" 1817 | eventClass["'ASM: Send msg to MARK'"]="Other" 1818 | eventClass["'IOS client reconnect to dif IOS'"]="Other" 1819 | eventClass["'enq: II - contention'"]="Other" 1820 | eventClass["'enq: IK - contention'"]="Other" 1821 | eventClass["'IOS worker process startup'"]="Other" 1822 | eventClass["'IOS worker process exit'"]="Other" 1823 | eventClass["'call'"]="Other" 1824 | eventClass["'enq: IC - IOServer clientID'"]="Other" 1825 | eventClass["'enq: IF - file open'"]="Other" 1826 | eventClass["'enq: IF - file close'"]="Other" 1827 | eventClass["'enq: PT - contention'"]="Other" 1828 | eventClass["'enq: PT - ASM Storage May Split'"]="Other" 1829 | eventClass["'enq: PM - contention'"]="Other" 1830 | eventClass["'ASM concurrent diskgroup dismount'"]="Other" 1831 | eventClass["'ASM PST operation'"]="Other" 1832 | eventClass["'global cache busy'"]="Other" 1833 | eventClass["'lock release pending'"]="Other" 1834 | eventClass["'dma prepare busy'"]="Other" 1835 | eventClass["'GCS lock cancel'"]="Other" 1836 | eventClass["'GCS lock open S'"]="Other" 1837 | eventClass["'GCS lock open X'"]="Other" 1838 | eventClass["'GCS lock open'"]="Other" 1839 | eventClass["'GCS lock cvt S'"]="Other" 1840 | eventClass["'GCS lock cvt X'"]="Other" 1841 | eventClass["'GCS lock esc X'"]="Other" 1842 | eventClass["'GCS lock esc'"]="Other" 1843 | eventClass["'GCS recovery lock open'"]="Other" 1844 | eventClass["'GCS recovery lock convert'"]="Other" 1845 | eventClass["'kfcl: instance recovery'"]="Other" 1846 | eventClass["'no free locks'"]="Other" 1847 | eventClass["'lock close'"]="Other" 1848 | eventClass["'enq: KE - contention'"]="Other" 1849 | eventClass["'enq: KQ - access ASM attribute'"]="Other" 1850 | eventClass["'ASM Volume Background'"]="Other" 1851 | eventClass["'ASM volume directive send'"]="Other" 1852 | eventClass["'ASM Volume Resource Action'"]="Other" 1853 | eventClass["'enq: AV - persistent DG number'"]="Other" 1854 | eventClass["'enq: AV - volume relocate'"]="Other" 1855 | eventClass["'enq: AV - AVD client registration'"]="Other" 1856 | eventClass["'enq: AV - add/enable first volume in DG'"]="Other" 1857 | eventClass["'ASM Scrubbing I/O'"]="Other" 1858 | eventClass["'ASM Async Scrub'"]="Other" 1859 | eventClass["'ASM Scrub Stop'"]="Other" 1860 | eventClass["'ASM Scrub Running'"]="Other" 1861 | eventClass["'ASM: VAM activation'"]="Other" 1862 | eventClass["'DB Split Delay'"]="Other" 1863 | eventClass["'enq: WF - contention'"]="Other" 1864 | eventClass["'enq: WT - contention'"]="Other" 1865 | eventClass["'enq: WP - contention'"]="Other" 1866 | eventClass["'enq: FU - contention'"]="Other" 1867 | eventClass["'enq: UF - undo stat flush per PDB'"]="Other" 1868 | eventClass["'enq: WI - AWR import'"]="Other" 1869 | eventClass["'enq: WE - AWR auto-export'"]="Other" 1870 | eventClass["'enq: WD - AWR mail package retrieval'"]="Other" 1871 | eventClass["'AWR Flush'"]="Other" 1872 | eventClass["'AWR Metric Capture'"]="Other" 1873 | eventClass["'enq: TB - SQL Tuning Base Cache Update'"]="Other" 1874 | eventClass["'enq: TB - SQL Tuning Base Cache Load'"]="Other" 1875 | eventClass["'enq: SH - contention'"]="Other" 1876 | eventClass["'enq: AF - task serialization'"]="Other" 1877 | eventClass["'MMON slave messages'"]="Other" 1878 | eventClass["'MMON (Lite) shutdown'"]="Other" 1879 | eventClass["'enq: MO - contention'"]="Other" 1880 | eventClass["'enq: MM - MMON Autotask scheduling'"]="Other" 1881 | eventClass["'enq: TL - contention'"]="Other" 1882 | eventClass["'enq: TH - metric threshold evaluation'"]="Other" 1883 | eventClass["'enq: TK - Auto Task Serialization'"]="Other" 1884 | eventClass["'enq: TK - Auto Task Slave Lockout'"]="Other" 1885 | eventClass["'enq: RR - contention'"]="Other" 1886 | eventClass["'WCR: RAC message context busy'"]="Other" 1887 | eventClass["'WCR: capture file IO write'"]="Other" 1888 | eventClass["'WCR: Sync context busy'"]="Other" 1889 | eventClass["'latch: WCR: sync'"]="Other" 1890 | eventClass["'latch: WCR: processes HT'"]="Other" 1891 | eventClass["'enq: RA - RT ADDM flood control'"]="Other" 1892 | eventClass["'enq: MW - contention'"]="Other" 1893 | eventClass["'enq: TU - UMF topology'"]="Other" 1894 | eventClass["'SPA slave messages'"]="Other" 1895 | eventClass["'enq: JS - job run lock - synchronize'"]="Other" 1896 | eventClass["'enq: JS - job recov lock'"]="Other" 1897 | eventClass["'enq: JS - wdw op'"]="Other" 1898 | eventClass["'enq: JS - evt notify'"]="Other" 1899 | eventClass["'enq: JS - aq sync'"]="Other" 1900 | eventClass["'enq: JG - queue lock'"]="Other" 1901 | eventClass["'enq: JG - q mem clnup lck'"]="Other" 1902 | eventClass["'enq: JG - contention'"]="Other" 1903 | eventClass["'enq: JG - sch locl enqs'"]="Other" 1904 | eventClass["'enq: JG - evt notify'"]="Other" 1905 | eventClass["'enq: JG - evtsub add'"]="Other" 1906 | eventClass["'enq: JG - evtsub drop'"]="Other" 1907 | eventClass["'enq: AU - ADR Purge Operation'"]="Other" 1908 | eventClass["'enq: XD - ASM disk drop/add'"]="Other" 1909 | eventClass["'enq: XD - ASM disk ONLINE'"]="Other" 1910 | eventClass["'enq: XD - ASM disk OFFLINE'"]="Other" 1911 | eventClass["'cell worker online completion'"]="Other" 1912 | eventClass["'cell worker retry '"]="Other" 1913 | eventClass["'cell manager cancel work request'"]="Other" 1914 | eventClass["'cell manager: CRS DG unmounted list'"]="Other" 1915 | eventClass["'cell manager: CRS DG start'"]="Other" 1916 | eventClass["'opening cell offload device'"]="Other" 1917 | eventClass["'ioctl to cell offload device'"]="Other" 1918 | eventClass["'reap block level offload operations'"]="Other" 1919 | eventClass["'enq: SN - PDB SGA allocation'"]="Other" 1920 | eventClass["'enq: SN - PDB SGA free'"]="Other" 1921 | eventClass["'enq: SN - PDB SGA protection'"]="Other" 1922 | eventClass["'CDB: Per Instance Query for PDB Info'"]="Other" 1923 | eventClass["'PDB relocate completion'"]="Other" 1924 | eventClass["'enq: PB - PDB Lock'"]="Other" 1925 | eventClass["'chunk move metadata prefetch'"]="Other" 1926 | eventClass["'secondary event'"]="Other" 1927 | } 1928 | 1929 | func GetClass(eventname string) string { 1930 | if className, ok := eventClass[eventname]; ok { 1931 | return className 1932 | } else { 1933 | return "UNKNOWN" 1934 | } 1935 | 1936 | } 1937 | --------------------------------------------------------------------------------