powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проблемные запросы
5 сообщений из 5, страница 1 из 1
Проблемные запросы
    #39832274
Rich_Mil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Нашел проблемные запросы в БД.
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
...
Рейтинг: 0 / 0
Проблемные запросы
    #39832319
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rich_MilЗапрос судя по всему пытается открыть много курсоров.Не запрос, а говно-продукт.
...
Рейтинг: 0 / 0
Проблемные запросы
    #39832335
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elicговно-продуктСудя по sys.sys_xxx и специфичным синтаксическим оборотам, это что-то из ораклового автоадминистрирования.
...
Рейтинг: 0 / 0
Проблемные запросы
    #39832338
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Проблемные запросы
    #39832372
Rich_Mil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-,

Так оно и есть. Буду тогда курсоры увеличивать
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проблемные запросы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]