|
Проблемные запросы
|
|||
---|---|---|---|
#18+
Всем привет. Нашел проблемные запросы в БД. sql_id=cgvwmvcwgrkxy sql_id=d1djs2bmqdsk4 Запрос судя по всему пытается открыть много курсоров. Подскажите, можно его как-либо оптимизировать, при этом не меняя параметр инициализации OPEN_CURSORS? Сами запросы: CREATE GLOBAL TEMPORARY TABLE "SYS"."SYS_TEMP_0FD9D6710_128DC2B2" SHARING=NONE ("C0" NUMBER,"C1" VARCHAR2(30) ) IN_MEMORY_METADATA CURSOR_SPECIFIC_SEGMENT STORAGE (OBJNO 4254951184 ) NOPARALLEL ----- Current SQL Statement for this session (sql_id=cgvwmvcwgrkxy) ----- with pdbview AS (select con_id, name from v$containers) SELECT pdb.name "PDB_NAME", dtp.tablespace_name "TABLESPACE_NAME", dtp.status "STATUS", dtp.contents "CONTENTS", dtp.extent_management "EXTENT MANAGEMENT", dtp.allocation_type "ALLOCATION TYPE", dtp.logging "LOGGING", NVL(ts.bytes, 0) "SIZE (M)", dtp.initial_extent "INITIAL EXT SIZE (K)", dtp.next_extent "Next Extent", dtp.pct_increase "INCREMENT PCT", dtp.max_extents "MAX EXTENTS", -1 "USED BYTES", dtp.min_extents, dtp.min_extlen, dtp.segment_space_management "SEGMENT SPACE MANAGEMENT", dtp.block_size, dtp.bigfile, dtp.encrypted FROM sys.cdb_tablespaces dtp, (SELECT pdb.con_id, cdf.tablespace_name, sum(cdf.bytes) bytes FROM cdb_data_files cdf, pdbview pdb WHERE cdf.con_id = pdb.con_id GROUP BY pdb.con_id, cdf.tablespace_name) ts, pdbview pdb WHERE dtp.tablespace_name = ts.tablespace_name (+) AND NOT (dtp.extent_management = 'LOCAL' AND dtp.contents = 'TEMPORARY') AND dtp.con_id = pdb.con_id AND ts.con_id(+) = pdb.con_id UNION ALL SELECT pdb.name "PDB_NAME", dtp.tablespace_name "TABLESPACE_NAME", dtp.status "STATUS", dtp.contents "CONTENTS", dtp.extent_management "EXTENT MANAGEMENT", dtp.allocation_type "ALLOCATION TYPE", dtp.logging "LOGGING", NVL(a.bytes, 0) "SIZE (M)", dtp.initial_extent "INITIAL EXT SIZE (K)", dtp.next_extent "Next Extent", dtp.pct_increase "INCREMENT PCT", dtp.max_extents "MAX EXTENTS", -1 "USED BYTES", dtp.min_extents, dtp.min_extlen, dtp.segment_space_management "SEGMENT SPACE MANAGEMENT", dtp.block_size, dtp.bigfile, dtp.encrypted FROM sys.cdb_tablespaces dtp, (SELECT pdb.con_id, ctf.tablespace_name, sum(ctf.bytes) bytes FROM cdb_temp_files ctf, pdbview pdb WHERE ctf.con_id = pdb.con_id GROUP BY pdb.con_id, ctf.tablespace_name) a, pdbview pdb WHERE dtp.tablespace_name = a.tablespace_name (+) AND dtp.extent_management = 'LOCAL' AND dtp.contents = 'TEMPORARY' AND dtp.con_id = pdb.con_id AND a.con_id(+) = pdb.con_id ORA-00604: error occurred at recursive SQL level 1 *** 2019-06-29 23:10:00.435 *** MODULE NAME:(emagent_SQL_oracle_database) 2019-06-29 23:10:00.435 *** ACTION NAME:(DB_INSTANCE_CAGING_ECM) 2019-06-29 23:10:00.435 ORA-01000: maximum open cursors exceeded И CREATE GLOBAL TEMPORARY TABLE "SYS"."SYS_TEMP_0FD9D6714_128DC2B2" SHARING=NONE ("C0" VARCHAR2(64),"C1" NUMBER ) IN_MEMORY_METADATA CURSOR_SPECIFIC_SEGMENT STORAGE (OBJNO 4254951188 ) NOPARALLEL ----- Current SQL Statement for this session (sql_id=d1djs2bmqdsk4) ----- WITH instances as (SELECT host_name, instance_number FROM gv$instance ) , num_cpus as (SELECT i.host_name, i.instance_number, sum(decode(o.stat_name, 'NUM_CPU_CORES', o.value, 0)) num_cpu_cores, sum(decode(o.stat_name, 'NUM_CPUS', o.value, 0)) num_cpus FROM instances i, gv$osstat o WHERE o.inst_id = i.instance_number GROUP BY i.instance_number, i.host_name) , cpu_count as (SELECT i.host_name, i.instance_number, sum(nvl(to_number(p.value), 0)) cpu_count FROM instances i, gv$system_parameter p, gv$rsrc_plan r WHERE p.name= 'cpu_count' AND (p.isdefault = 'FALSE' OR p.ismodified != 'FALSE') AND i.instance_number = p.inst_id AND r.inst_id = p.inst_id AND r.is_top_plan = 'TRUE' AND r.cpu_managed = 'ON' GROUP BY host_name, instance_number) (SELECT c.host_name, c.instance_number, nvl(c.num_cpus,c.num_cpu_cores) as num_cpus, nvl(c.num_cpu_cores, c.num_cpus) as num_cpu_cores, nvl(p.cpu_count, -1) as cpu_count FROM num_cpus c, cpu_count p WHERE p.instance_number(+) = c.instance_number) ORA-00604: error occurred at recursive SQL level 1 *** 2019-06-30 22:24:42.157 *** MODULE NAME:(emagent_SQL_oracle_database) 2019-06-30 22:24:42.157 *** ACTION NAME:(cdb_tablespaces) 2019-06-30 22:24:42.157 ORA-01000: maximum open cursors exceeded ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 14:15 |
|
Проблемные запросы
|
|||
---|---|---|---|
#18+
Rich_MilЗапрос судя по всему пытается открыть много курсоров.Не запрос, а говно-продукт. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 14:50 |
|
Проблемные запросы
|
|||
---|---|---|---|
#18+
Elicговно-продуктСудя по sys.sys_xxx и специфичным синтаксическим оборотам, это что-то из ораклового автоадминистрирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 15:00 |
|
Проблемные запросы
|
|||
---|---|---|---|
#18+
Rich_Mil, Запросы от OEM. Похоже на Bug 13524899 - Creation of Cursor-Duration in-memory temporary table produces too much recursive SQL (Doc ID 13524899.8) SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 15:01 |
|
|
start [/forum/topic.php?fid=52&fpage=73&tid=1882345]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 19ms |
total: | 152ms |
0 / 0 |