@@ -21,41 +21,41 @@ create or replace package body ut_annotation_cache_manager as
2121 l_timestamp timestamp := systimestamp;
2222 pragma autonomous_transaction;
2323 begin
24- update ut_annotation_cache_schema s
24+ update /*+ no_parallel */ ut_annotation_cache_schema s
2525 set s.max_parse_time = l_timestamp
2626 where s.object_type = a_object.object_type and s.object_owner = a_object.object_owner;
2727
2828 if sql%rowcount = 0 then
29- insert into ut_annotation_cache_schema s
29+ insert /*+ no_parallel */ into ut_annotation_cache_schema s
3030 (object_owner, object_type, max_parse_time)
3131 values (a_object.object_owner, a_object.object_type, l_timestamp);
3232 end if;
3333
3434 -- if not in trigger, or object has annotations
3535 if ora_sysevent is null or a_object.annotations is not null and a_object.annotations.count > 0 then
3636
37- update ut_annotation_cache_info i
37+ update /*+ no_parallel */ ut_annotation_cache_info i
3838 set i.parse_time = l_timestamp
3939 where (i.object_owner, i.object_name, i.object_type)
4040 in ((a_object.object_owner, a_object.object_name, a_object.object_type))
4141 returning cache_id into l_cache_id;
4242
4343 if sql%rowcount = 0 then
4444
45- insert into ut_annotation_cache_info
45+ insert /*+ no_parallel */ into ut_annotation_cache_info
4646 (cache_id, object_owner, object_name, object_type, parse_time)
4747 values (ut_annotation_cache_seq.nextval, a_object.object_owner, a_object.object_name, a_object.object_type, l_timestamp)
4848 returning cache_id into l_cache_id;
4949 end if;
5050
5151 end if;
5252
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;
5454
5555 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
5757 (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
5959 from table(a_object.annotations) a;
6060 end if;
6161 commit;
@@ -67,9 +67,9 @@ create or replace package body ut_annotation_cache_manager as
6767 pragma autonomous_transaction;
6868 begin
6969
70- delete from ut_annotation_cache c
70+ delete /*+ no_parallel */ from ut_annotation_cache c
7171 where c.cache_id
72- in (select i.cache_id
72+ in (select /*+ no_parallel */ i.cache_id
7373 from ut_annotation_cache_info i
7474 join table (a_objects) o
7575 on o.object_name = i.object_name
@@ -78,25 +78,26 @@ create or replace package body ut_annotation_cache_manager as
7878 and o.needs_refresh = 'Y'
7979 );
8080
81- update ut_annotation_cache_schema s
81+ update /*+ no_parallel */ ut_annotation_cache_schema s
8282 set s.max_parse_time = l_timestamp
8383 where (s.object_owner, s.object_type)
8484 in (
85- select o.object_owner, o.object_type
85+ select /*+ no_parallel */ o.object_owner, o.object_type
8686 from table(a_objects) o
8787 where o.needs_refresh = 'Y'
8888 );
8989
9090 if sql%rowcount = 0 then
91- insert into ut_annotation_cache_schema s
91+ insert /*+ no_parallel */ into ut_annotation_cache_schema s
9292 (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
9494 from table(a_objects) o
9595 where o.needs_refresh = 'Y';
9696 end if;
9797
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
100101 from table(a_objects) o
101102 where o.needs_refresh = 'Y'
102103 ) o
@@ -116,7 +117,7 @@ create or replace package body ut_annotation_cache_manager as
116117 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
117118 l_result ut_annotation_objs_cache_info;
118119 begin
119- select ut_annotation_obj_cache_info(
120+ select /*+ no_parallel */ ut_annotation_obj_cache_info(
120121 object_owner => i.object_owner,
121122 object_name => i.object_name,
122123 object_type => i.object_type,
@@ -135,7 +136,7 @@ create or replace package body ut_annotation_cache_manager as
135136 l_result t_cache_schema_info;
136137 begin
137138 begin
138- select *
139+ select /*+ no_parallel */ *
139140 into l_result
140141 from ut_annotation_cache_schema s
141142 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
149150 procedure set_fully_refreshed(a_object_owner varchar2, a_object_type varchar2) is
150151 pragma autonomous_transaction;
151152 begin
152- update ut_annotation_cache_schema s
153+ update /*+ no_parallel */ ut_annotation_cache_schema s
153154 set s.full_refresh_time = s.max_parse_time
154155 where s.object_owner = a_object_owner
155156 and s.object_type = a_object_type;
@@ -160,9 +161,9 @@ create or replace package body ut_annotation_cache_manager as
160161 pragma autonomous_transaction;
161162 begin
162163
163- delete from ut_annotation_cache_info i
164+ delete /*+ no_parallel */ from ut_annotation_cache_info i
164165 where exists (
165- select 1 from table (a_objects) o
166+ select /*+ no_parallel */ 1 from table (a_objects) o
166167 where o.object_name = i.object_name
167168 and o.object_type = i.object_type
168169 and o.object_owner = i.object_owner
@@ -175,7 +176,7 @@ create or replace package body ut_annotation_cache_manager as
175176 l_results sys_refcursor;
176177 begin
177178 open l_results for
178- select ut_annotated_object(
179+ select /*+ no_parallel */ ut_annotated_object(
179180 i.object_owner, i.object_name, i.object_type, i.parse_time,
180181 cast(
181182 collect(
@@ -204,15 +205,15 @@ create or replace package body ut_annotation_cache_manager as
204205 else
205206 l_filter := case when a_object_owner is null then ':a_object_owner is null' else 'object_owner = :a_object_owner' end;
206207 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 || ' )';
208209 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
210211 using a_object_owner, a_object_type;
211212
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
213214 using a_object_owner, a_object_type;
214215
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
216217 using a_object_owner, a_object_type;
217218
218219 commit;
0 commit comments