powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / EXEC и FETCH курсора
18 сообщений из 18, страница 1 из 1
EXEC и FETCH курсора
    #39884023
avdu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья,

столкнулся с такой задачей - где найти подробное описание действий, которые делаются с курсором
во время операций EXEC и FETCH.
Сразу предупреждаю любителей писать банальности вроде этой:

Execute cursor: The SQL statement is executed. But be careful—the database engine
doesn’t always do anything significant during this phase. In fact, for many types of queries,
the real processing is usually delayed to the fetch phase.

Fetch cursor: If the SQL statement returns data, this step retrieves it. Especially for queries,
this step is where most of the processing is performed. In the case of queries, the result set
might be partially fetched. In other words, the cursor might be closed before fetching all
the rows.

- интересует именно глубинное описание. Искал на Сети - ничего более вразумительного, чем приведенное выше, не нашел.
Вопрос возник в связи с тем, что один и тот же запрос в разное время или на разных данных/серверах БД,
в топе профиля ресурсов выдает то EXEC (CPU), то FETCH (CPU).

Итак:
- что же делает курсор во время EXEC?
- что делает оный во время FETCH?

Интересует ПРЕЖДЕ всего - SELECT.
И - в качестве бонуса - UPDATE & INSERT.


Спасибо.
...
Рейтинг: 0 / 0
EXEC и FETCH курсора
    #39884045
Synoptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тут подробней: https://habr.com/ru/post/429946/
...
Рейтинг: 0 / 0
EXEC и FETCH курсора
    #39884049
oragraf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Synoptic,

ну ты тролль
...
Рейтинг: 0 / 0
EXEC и FETCH курсора
    #39884096
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avduИ - в качестве бонуса - UPDATE & INSERT.Давай ты сам сперва выскажешь своё предположение, что же в таких случаях "делает оный во время FETCH?"
...
Рейтинг: 0 / 0
EXEC и FETCH курсора
    #39884184
avdu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ElicavduИ - в качестве бонуса - UPDATE & INSERT.Давай ты сам сперва выскажешь своё предположение, что же в таких случаях "делает оный во время FETCH?"

Здесь проще - то, что делает FETCH видно из файла трассировки - в рамках вызова FETCH (перед ним) идут
1. Запросы к ОС на чтение вида WAIT nam='db file sequential read' и прочие подобные (scattered read, etc) и
2. Пересылка туда-сюда по сети (SQL*Net message to/from client) - тоже, в общем-то, к ОС.

Последние бывают и с EXEC, но первые - нет (речь пока о SELECT).

Вот в связи с этим и любопытственно - что же (пока в случае SELECT) делает EXEC?

Хотелось бы препарировать EXEC и FETCH и сделать наглядное пособие.
Как в анатомии.
...
Рейтинг: 0 / 0
EXEC и FETCH курсора
    #39884217
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avduХотелось бы препарировать EXEC и FETCH и сделать наглядное пособие.
Как в анатомии.Зачем и кому это нужно?
Много свободного времени на работе?
...
Рейтинг: 0 / 0
EXEC и FETCH курсора
    #39884226
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avduЗдесь проще - то, что делает FETCH видно из файла трассировки - в рамках вызова FETCH (перед ним) идутЗачёт не сдан. Тебе, неуч, рано копать так глубоко.
...
Рейтинг: 0 / 0
EXEC и FETCH курсора
    #39884234
avdu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Валерий ЮринскийavduХотелось бы препарировать EXEC и FETCH и сделать наглядное пособие.
Как в анатомии.Зачем и кому это нужно?
Много свободного времени на работе?

Если вам это не нужно - не пишите сюда.
Мне - нужно. И именно на работе и по работе.
Все просто.
...
Рейтинг: 0 / 0
EXEC и FETCH курсора
    #39884236
avdu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ElicavduЗдесь проще - то, что делает FETCH видно из файла трассировки - в рамках вызова FETCH (перед ним) идутЗачёт не сдан. Тебе, неуч, рано копать так глубоко.

Я тебе зачеты и не сдаю.
Не вышел лицом.
...
Рейтинг: 0 / 0
EXEC и FETCH курсора
    #39884239
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avduчто делает FETCH видно из файла трассировки - в рамках вызова FETCH (перед ним) идут
1. Запросы к ОС на чтение вида WAIT nam='db file sequential read' и прочие подобные (scattered read, etc) и
2. Пересылка туда-сюда по сети (SQL*Net message to/from client) - тоже, в общем-то, к ОС.Выводы ни о чем. Во-первых, и без трассировки очевидно, что при фетче могут быть и физические чтения (еще и логические!), и передача по сети. А могут и не быть.
Во-вторых, не все фетчи одинаковы, а уж с точки зрения клиента наворачивается еще куча слоев.
avduВалерий ЮринскийЗачем и кому это нужно?Если вам это не нужно - не пишите сюда.
Мне - нужно. И именно на работе и по работе.
Все просто.Расскажи, в чем нужность, если вопрос получится менее бестолковым, ответят.
...
Рейтинг: 0 / 0
EXEC и FETCH курсора
    #39884250
avdu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-avduчто делает FETCH видно из файла трассировки - в рамках вызова FETCH (перед ним) идут
1. Запросы к ОС на чтение вида WAIT nam='db file sequential read' и прочие подобные (scattered read, etc) и
2. Пересылка туда-сюда по сети (SQL*Net message to/from client) - тоже, в общем-то, к ОС.Выводы ни о чем. Во-первых, и без трассировки очевидно, что при фетче могут быть и физические чтения (еще и логические!), и передача по сети. А могут и не быть.
Во-вторых, не все фетчи одинаковы, а уж с точки зрения клиента наворачивается еще куча слоев.
Расскажи, в чем нужность, если вопрос получится менее бестолковым, ответят.

Очень видно (очевидно) - это где? Для красного словца?

Я намеренно упростил ответ - очевидно!!! бывает по разному.

В начальном посту я написал, для чего это нужно.

Очевидно!!!, придется искать самому. Тем более мне-то ясно, для чего это нужно.

Ну что-ж, найдем, не впервой.
...
Рейтинг: 0 / 0
EXEC и FETCH курсора
    #39884255
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avduНу что-ж, найдем, не впервой.Валяй.
Только в следующий раз говори сразу, что ты д'артаньян, чтобы на тебя время не тратили.
...
Рейтинг: 0 / 0
EXEC и FETCH курсора
    #39884258
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avduОчевидно!!!, придется искать самому. Тем более мне-то ясно, для чего это нужно.

Ну что-ж, найдем, не впервой.Юнош, какой-то ты слишком нервный и нежный для технического специалиста.

Во-первых ты не показал свою проблему, может ты вообще не те цифры смотришь.

Во-вторых у тебя скорее всего не тот уровень чтоб сюда копать раз ты даже не знаешь какие ключевые слова ввести в поисковик,
чтоб найти кучу инфы. И сооответственно у отвечающих подозрение что детальная инфа тебя еще больше запутает.

В-третих вопрос "что делает курсор" сразу наводит на мысль, что ты вообще не отстреливаешь что и как устроено. Курсор это структура в памяти. Он ничего не делает.

В-четвертых сам тон "в качестве бонуса" от тебя сразу отталкивает это раз. Если б ты понимал что такое rowsource, ты бы не разделял в этом плане select/insert/update это два.

Держи, просвещайся
https://blog.tanelpoder.com/2008/06/15/advanced-oracle-troubleshooting-guide-part-6-understanding-oracle-execution-plans-with-os_explain/

Потом расскажешь как это тебе помогло. :)
...
Рейтинг: 0 / 0
EXEC и FETCH курсора
    #39884284
avdu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу всех, кому сказать нечего, не тратить свое время и не упражнять свое хамское красноречие.

Займитесь делом более полезным, не отвлекайтесь на то, что кажется вам глупым и вас недостойным.

Есть же еще на Руси великой и приличные люди?
...
Рейтинг: 0 / 0
EXEC и FETCH курсора
    #39884288
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
EXEC и FETCH курсора
    #39884292
Фотография Я и ёжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В цепочке 'open - parse - bind - exec - fetch - close' при включенном и используемом bind пикинг на стадию Exec переходит построение плана запроса, поскольку на фазе parse еще нет данных о значениях bind.
Соответственно "Запросы к ОС на чтение вида WAIT nam='db file sequential read' и прочие подобные" и еще куча всего используемого при построении плана и рекурсивными запросами могут присутствовать.

Так же в трассировке с бинд переменными время вывода в трейс значений переменных так же попдает на стадию EXEC, отсюда на 12 уровне трассирвки при запросах с большим числом биндов можно видеть искажения когда для простого SELECT на EXEC начинает приходится большее время , чем на стадию FETCH.
...
Рейтинг: 0 / 0
EXEC и FETCH курсора
    #39884301
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
avduВопрос возник в связи с тем, что один и тот же запрос в разное время или на разных данных/серверах БД,
в топе профиля ресурсов выдает то EXEC (CPU), то FETCH (CPU).вообще не в ту сторону копаете. Объяснить многие из тех, кто уже тут ответили могут легко, но видят, что вам это не нужно и не поможет.

Зы. И не надо тут так воинственно спорить. Хотя бы немного стоит подумать, если несколько человек уже указали на странность вопроса.

Зыы. А не вы ли так яростно заявляли, что все и всегда надо трассировать с 10046?
...
Рейтинг: 0 / 0
EXEC и FETCH курсора
    #39884317
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / EXEC и FETCH курсора
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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