powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Большая нагрузка на SYS.STANDART.SYSDATE
24 сообщений из 24, страница 1 из 1
Большая нагрузка на SYS.STANDART.SYSDATE
    #39280877
Фотография Scorpion_TSN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем добрый день!

БД: Oracle Database EE 11.2.0.2 (OLTP)
Cистема: AIX 6

Недавно выяснилось с помощью EM, что на продуктивной БД большая нагрузка на SYS.STANDART.SYSDATE (Top PL/SQL)
В силу особенностей БД, мы действительно очень часто используем sysdate. БД очень нагружена (OLTP).
Может кто-нибудь встречался с такой проблемой? Хотелось бы услышать мнения и админов и программистов.

Спасибо.
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39280883
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в чем измеряется "нагрузка на"?Scorpion_TSNSTANDAR T
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39280917
Фотография Scorpion_TSN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-,

Activity (%) CPU+CPU Wait - 30%

Действительно не правильно выразился. Нагрузка на процессор при использовании SYS.STANDART.SYSDATE
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39280936
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Scorpion_TSN-2-,

Activity (%) CPU+CPU Wait - 30%

Действительно не правильно выразился. Нагрузка на процессор при использовании SYS.STANDART.SYSDATE
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39280941
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fogel
Activity (%) CPU+CPU Wait - 30%

Действительно не правильно выразился. Нагрузка на процессор при использовании SYS.STANDART.SYSDATE

Это не на сисдэйт нагрузка, а на кривом запросе, который занимается хардпарсингом данных при сравнении столбца даты с текущей путём вызова сисдэйт.
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39280955
Фотография Scorpion_TSN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно по подробнее.. Если можно пример такого запроса.

Спасибо.
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39280987
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Scorpion_TSNпример такого запроса.

примеров, как неправильно, можно привести много.
вам надо смотреть конкретный запрос/операцию PL/sql блока и по нему уже думать над оптимизацией.
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39281095
Фотография Scorpion_TSN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто непонятна ни мне, ни коллегам фраза "...кривом запросе, который занимается хардпарсингом данных при сравнении столбца даты с текущей путём вызова сисдэйт...."

Буквально по пунктам, что Вы имеете в виду??:

1) "хардпарсингом данных"

2) "текущей путём вызова сисдэйт"
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39281100
Фотография Scorpion_TSN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно хоть какой-то неправильный пример?
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39281117
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз
Объясни, с чего ты взял что основную нагрузку вызывает SYS.STANDARD.SYSDATE?
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39281178
Фотография Scorpion_TSN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Oracle EM вижу в Top Activity

Activity (%) CPU+CPU Wait - 30%
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39281189
Фотография Scorpion_TSN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Остальные PL/SQL вызывают куда более меньшую нагрузку, хотя клиентами могут вызываться до 4000 раз в минуту...
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39281257
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Scorpion_TSNМожно хоть какой-то неправильный пример?
пожалуйста, пример абсолютного идиотизма, который может быть по нагрузке похож на вашу ситуацию:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
declare
dt date;
begin
 for i in (select поле_даты from большой таблицы возвращает много-много-много-много строк) loop
 execute immediate 'update блалблабла table where '||i.поле_даты||' < sysdate';
end loop;
end;



но ваш код естественно совершенно другой.

Scorpion_TSNБуквально по пунктам, что Вы имеете в виду??:

1) "хардпарсингом данных"

2) "текущей путём вызова сисдэйт"
2 - вы исказили мою фразу, по ней - см. выше.

1. hard parse очень-очень кратко
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39281279
месседжер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Fogel1. hard parse очень-очень кратко хардпарс внутри sysdate? не могу представить.
а вот то, что приложение использует пул и каждый запрос предваряет проверкой соединения получением сисдаты, причем не sql-функцией, а селектом именно сис.стандард, запросто. также напрашивается, что большинство целевых запросов также являются непрерывным пингом, типа есть что в пустой очереди или нет.
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39281280
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYS.STANDARD.SYSDATE не вызывается в SQL при обращении к SYSDATE (если, конечно, кто-то явно его не вызывает именно как COLUMN > SYS.STANDARD.SYSDATE, но это уж совсем клиника)
Он вызывается из PL/SQL в конструкциях VAR := SYSDATE;

Но даже в этом случае -- там внутренний вызов функций ораклового ядра, поэтому заставить его как-то сильно участвовать в топе активности -- это бесконечный цикл в вызовом VAR := SYSDATE;, причем единственной активной сессией
При этом в топ скорее попадет тот самый анонимный блок или програмная единица, содержащая этот цикл

Интересно бы посмотреть, каким запросом EM определил виновника
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39281284
Фотография Scorpion_TSN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FogelScorpion_TSNМожно хоть какой-то неправильный пример?
пожалуйста, пример абсолютного идиотизма, который может быть по нагрузке похож на вашу ситуацию:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
declare
dt date;
begin
 for i in (select поле_даты from большой таблицы возвращает много-много-много-много строк) loop
 execute immediate 'update блалблабла table where '||i.поле_даты||' < sysdate';
end loop;
end;



но ваш код естественно совершенно другой.

Scorpion_TSNБуквально по пунктам, что Вы имеете в виду??:

1) "хардпарсингом данных"

2) "текущей путём вызова сисдэйт"
2 - вы исказили мою фразу, по ней - см. выше.

1. hard parse очень-очень кратко

Спасибо. Идея понятна. Будем проверять.
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39281292
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровИнтересно бы посмотреть, каким запросом EM определил виновникаplsql_entry_object_id, plsql_entry_subprogram_id в ASH.
Scorpion_TSNСпасибо. Идея понятна. Будем проверять.Идея - маразм. Перечитай что выше написал Любомудров.

Для дополнительных деталей - смотри sql_id, top_level_sql_id в ASH.
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39281314
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopВячеслав ЛюбомудровИнтересно бы посмотреть, каким запросом EM определил виновникаplsql_entry_object_id, plsql_entry_subprogram_id в ASH.
Т.е. блок
Код: plsql
1.
2.
3.
4.
5.
6.
7.
declare d date;
begin d := sysdate;
      while true loop
          null;
      end loop;
end;
/

Как раз и выведет в топ обращение (единственное) к SYS.STANDARD.SYSDATE и сам этот анонимный блок?
Или оно меняется при возврате из вызванной процедуры/функции?

Я как-то никогда не обращал на это внимания
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39281321
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудровdbms_photoshopпропущено...
plsql_entry_object_id, plsql_entry_subprogram_id в ASH.
Т.е. блок
Код: plsql
1.
2.
3.
4.
5.
6.
7.
declare d date;
begin d := sysdate;
      while true loop
          null;
      end loop;
end;
/

Как раз и выведет в топ обращение (единственное) к SYS.STANDARD.SYSDATE и сам этот анонимный блок?
Или оно меняется при возврате из вызванной процедуры/функции?

Я как-то никогда не обращал на это внимания Если в цикле нет вызова хранимого кода, то и plsql_entry_object_id, plsql_entry_subprogram_id будут null.
Запусти и загляни в ash.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
declare
   d   date;
begin
   for i in 1 .. 1e8
   loop
      d   := sysdate + mod(i, 10);
   end loop;
end;
/
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39281339
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровSYS.STANDARD.SYSDATE не вызывается в SQL при обращении к SYSDATE
если вызывает пользователь в своей сессии, то да.

а если работает джоб?
вопрос на засыпку: если пользователь обращается к синониму на свой же объект, обработка запроса пойдёт по синониму или напрямую (т.е. с указанием полного пути)?
у любого dbms_джоба владелец sys...

про var: = sysdate вы стопроцентно правы, тут даже не поспоришь.
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39281349
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты еще не понял, что SQL и PL/SQL разные языки?
И функции у них у каждого свои
Где-то совпадают по имени (sysdate), где-то отсутствуют (decode)
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39281361
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровТы еще не понял, что SQL и PL/SQL разные языки?
И функции у них у каждого свои
Где-то совпадают по имени (sysdate), где-то отсутствуют (decode)

))
NDS - специфика исключительно PL/SQL -это к вопросу о моём понимании различий в языках на основе приведённого мной примера.
Если по вашей логике SYS.STANDARD.SYSDATE - исключительно прерогатива вызова SQL, то где же тогда хранится то, что вызывает PL/SQL, обращаясь к sysdate?
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39281395
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fogel,

sysdate()
...
Рейтинг: 0 / 0
Большая нагрузка на SYS.STANDART.SYSDATE
    #39281561
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopFogel,

sysdate()

NDS при распарсивании переводится в SQL и происходит переключение контекста. NDS для того и придуман был, чтобы облегчить применение чистого sql-движка в PL/SQL. поэтому он и специфика PL/SQL. самому sql ещё один переводчик sql не нужен.

"про var: = sysdate" - тоже возможная причина (как я и сказал без какого либо подвоха, но видимо поняли наоборот) при нагрузке на CPU, но тут уже работает PL/SQl движок и как вы выяснили все дороги все равно ведут в рай SYS.STANDARD.SYSDATE.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Большая нагрузка на SYS.STANDART.SYSDATE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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