@@ -21,41 +21,41 @@ create or replace package body ut_annotation_cache_manager as
21
21
l_timestamp timestamp := systimestamp;
22
22
pragma autonomous_transaction;
23
23
begin
24
- update ut_annotation_cache_schema s
24
+ update /*+ no_parallel */ ut_annotation_cache_schema s
25
25
set s.max_parse_time = l_timestamp
26
26
where s.object_type = a_object.object_type and s.object_owner = a_object.object_owner;
27
27
28
28
if sql%rowcount = 0 then
29
- insert into ut_annotation_cache_schema s
29
+ insert /*+ no_parallel */ into ut_annotation_cache_schema s
30
30
(object_owner, object_type, max_parse_time)
31
31
values (a_object.object_owner, a_object.object_type, l_timestamp);
32
32
end if;
33
33
34
34
-- if not in trigger, or object has annotations
35
35
if ora_sysevent is null or a_object.annotations is not null and a_object.annotations.count > 0 then
36
36
37
- update ut_annotation_cache_info i
37
+ update /*+ no_parallel */ ut_annotation_cache_info i
38
38
set i.parse_time = l_timestamp
39
39
where (i.object_owner, i.object_name, i.object_type)
40
40
in ((a_object.object_owner, a_object.object_name, a_object.object_type))
41
41
returning cache_id into l_cache_id;
42
42
43
43
if sql%rowcount = 0 then
44
44
45
- insert into ut_annotation_cache_info
45
+ insert /*+ no_parallel */ into ut_annotation_cache_info
46
46
(cache_id, object_owner, object_name, object_type, parse_time)
47
47
values (ut_annotation_cache_seq.nextval, a_object.object_owner, a_object.object_name, a_object.object_type, l_timestamp)
48
48
returning cache_id into l_cache_id;
49
49
end if;
50
50
51
51
end if;
52
52
53
- delete from ut_annotation_cache c where cache_id = l_cache_id;
53
+ delete /*+ no_parallel */ from ut_annotation_cache c where cache_id = l_cache_id;
54
54
55
55
if a_object.annotations is not null and a_object.annotations.count > 0 then
56
- insert into ut_annotation_cache
56
+ insert /*+ no_parallel */ into ut_annotation_cache
57
57
(cache_id, annotation_position, annotation_name, annotation_text, subobject_name)
58
- select l_cache_id, a.position, a.name, a.text, a.subobject_name
58
+ select /*+ no_parallel */ l_cache_id, a.position, a.name, a.text, a.subobject_name
59
59
from table(a_object.annotations) a;
60
60
end if;
61
61
commit;
@@ -67,9 +67,9 @@ create or replace package body ut_annotation_cache_manager as
67
67
pragma autonomous_transaction;
68
68
begin
69
69
70
- delete from ut_annotation_cache c
70
+ delete /*+ no_parallel */ from ut_annotation_cache c
71
71
where c.cache_id
72
- in (select i.cache_id
72
+ in (select /*+ no_parallel */ i.cache_id
73
73
from ut_annotation_cache_info i
74
74
join table (a_objects) o
75
75
on o.object_name = i.object_name
@@ -78,25 +78,26 @@ create or replace package body ut_annotation_cache_manager as
78
78
and o.needs_refresh = 'Y'
79
79
);
80
80
81
- update ut_annotation_cache_schema s
81
+ update /*+ no_parallel */ ut_annotation_cache_schema s
82
82
set s.max_parse_time = l_timestamp
83
83
where (s.object_owner, s.object_type)
84
84
in (
85
- select o.object_owner, o.object_type
85
+ select /*+ no_parallel */ o.object_owner, o.object_type
86
86
from table(a_objects) o
87
87
where o.needs_refresh = 'Y'
88
88
);
89
89
90
90
if sql%rowcount = 0 then
91
- insert into ut_annotation_cache_schema s
91
+ insert /*+ no_parallel */ into ut_annotation_cache_schema s
92
92
(object_owner, object_type, max_parse_time)
93
- select distinct o.object_owner, o.object_type, l_timestamp
93
+ select /*+ no_parallel */ distinct o.object_owner, o.object_type, l_timestamp
94
94
from table(a_objects) o
95
95
where o.needs_refresh = 'Y';
96
96
end if;
97
97
98
- merge into ut_annotation_cache_info i
99
- using (select o.object_name, o.object_type, o.object_owner
98
+ merge /*+ no_parallel */
99
+ into ut_annotation_cache_info i
100
+ using (select /*+ no_parallel */ o.object_name, o.object_type, o.object_owner
100
101
from table(a_objects) o
101
102
where o.needs_refresh = 'Y'
102
103
) o
@@ -116,7 +117,7 @@ create or replace package body ut_annotation_cache_manager as
116
117
function get_cached_objects_list(a_object_owner varchar2, a_object_type varchar2, a_parsed_after timestamp := null) return ut_annotation_objs_cache_info is
117
118
l_result ut_annotation_objs_cache_info;
118
119
begin
119
- select ut_annotation_obj_cache_info(
120
+ select /*+ no_parallel */ ut_annotation_obj_cache_info(
120
121
object_owner => i.object_owner,
121
122
object_name => i.object_name,
122
123
object_type => i.object_type,
@@ -135,7 +136,7 @@ create or replace package body ut_annotation_cache_manager as
135
136
l_result t_cache_schema_info;
136
137
begin
137
138
begin
138
- select *
139
+ select /*+ no_parallel */ *
139
140
into l_result
140
141
from ut_annotation_cache_schema s
141
142
where s.object_type = a_object_type and s.object_owner = a_object_owner;
@@ -149,7 +150,7 @@ create or replace package body ut_annotation_cache_manager as
149
150
procedure set_fully_refreshed(a_object_owner varchar2, a_object_type varchar2) is
150
151
pragma autonomous_transaction;
151
152
begin
152
- update ut_annotation_cache_schema s
153
+ update /*+ no_parallel */ ut_annotation_cache_schema s
153
154
set s.full_refresh_time = s.max_parse_time
154
155
where s.object_owner = a_object_owner
155
156
and s.object_type = a_object_type;
@@ -160,9 +161,9 @@ create or replace package body ut_annotation_cache_manager as
160
161
pragma autonomous_transaction;
161
162
begin
162
163
163
- delete from ut_annotation_cache_info i
164
+ delete /*+ no_parallel */ from ut_annotation_cache_info i
164
165
where exists (
165
- select 1 from table (a_objects) o
166
+ select /*+ no_parallel */ 1 from table (a_objects) o
166
167
where o.object_name = i.object_name
167
168
and o.object_type = i.object_type
168
169
and o.object_owner = i.object_owner
@@ -175,7 +176,7 @@ create or replace package body ut_annotation_cache_manager as
175
176
l_results sys_refcursor;
176
177
begin
177
178
open l_results for
178
- select ut_annotated_object(
179
+ select /*+ no_parallel */ ut_annotated_object(
179
180
i.object_owner, i.object_name, i.object_type, i.parse_time,
180
181
cast(
181
182
collect(
@@ -204,15 +205,15 @@ create or replace package body ut_annotation_cache_manager as
204
205
else
205
206
l_filter := case when a_object_owner is null then ':a_object_owner is null' else 'object_owner = :a_object_owner' end;
206
207
l_filter := l_filter || ' and ' || case when a_object_type is null then ':a_object_type is null' else 'object_type = :a_object_type' end;
207
- l_cache_filter := ' c.cache_id in (select i.cache_id from ut_annotation_cache_info i where ' || l_filter || ' )';
208
+ l_cache_filter := ' c.cache_id in (select /*+ no_parallel */ i.cache_id from ut_annotation_cache_info i where ' || l_filter || ' )';
208
209
end if;
209
- execute immediate 'delete from ut_annotation_cache c where ' || l_cache_filter
210
+ execute immediate 'delete /*+ no_parallel */ from ut_annotation_cache c where ' || l_cache_filter
210
211
using a_object_owner, a_object_type;
211
212
212
- execute immediate ' delete from ut_annotation_cache_info i where ' || l_filter
213
+ execute immediate ' delete /*+ no_parallel */ from ut_annotation_cache_info i where ' || l_filter
213
214
using a_object_owner, a_object_type;
214
215
215
- execute immediate ' delete from ut_annotation_cache_schema s where ' || l_filter
216
+ execute immediate ' delete /*+ no_parallel */ from ut_annotation_cache_schema s where ' || l_filter
216
217
using a_object_owner, a_object_type;
217
218
218
219
commit;
0 commit comments