Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Получит ли второй пользователь свою ошибку раньше, чем первый пользователь?  [new]
ORA_Worker
Member

Откуда: Москва
Сообщений: 263
Вечер добрый!
Вот задался вопросом, не могу ответ в доках найти.

А какова дальнейшая судьба неправильно составленного (с точки зрения синтаксиса) запроса, помещаемого в SharedPool, после разбора? То есть был вычислен хэш запроса, помещён в Shared Pool, а запрос оказался неверен. Чего с этим хэш сделает Oracle? Оставит в Shared Pool или удалит?

К примеру, оба два пользователя запустили на выполнение неправильно составленный запрос. Получит ли второй пользователь свою ошибку раньше, чем первый?
8 янв 11, 19:32    [10042890]     Ответить | Цитировать Сообщить модератору
 Re: Получит ли второй пользователь свою ошибку раньше, чем первый пользователь?  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3778
ORA_Worker
А какова дальнейшая судьба неправильно составленного (с точки зрения синтаксиса) запроса, помещаемого в SharedPool, после разбора?
до шаредпула он не дойдет
8 янв 11, 19:41    [10042911]     Ответить | Цитировать Сообщить модератору
 Re: Получит ли второй пользователь свою ошибку раньше, чем первый пользователь?  [new]
recovery manager
Guest
А ты уверен что он туда вобще будет помещен ?
8 янв 11, 19:44    [10042921]     Ответить | Цитировать Сообщить модератору
 Re: Получит ли второй пользователь свою ошибку раньше, чем первый пользователь?  [new]
бородавочнег
Guest
зачем было писать это через 3 минуты после предыдущего ответа?

recovery manager
А ты уверен что он туда вобще будет помещен ?
8 янв 11, 19:49    [10042931]     Ответить | Цитировать Сообщить модератору
 Re: Получит ли второй пользователь свою ошибку раньше, чем первый пользователь?  [new]
ORA_Worker
Member

Откуда: Москва
Сообщений: 263
Андрей Панфилов, до что мы SharedPool не забиваем это точно. Область памяти с неправильным текстом останется SP, но она будет считаться свободной. Вопрос в том: при повторном поиске по хэш значению будет ли найдена эта область?
8 янв 11, 19:53    [10042939]     Ответить | Цитировать Сообщить модератору
 Re: Получит ли второй пользователь свою ошибку раньше, чем первый пользователь?  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3778
ORA_Worker,

читайте
8 янв 11, 20:00    [10042957]     Ответить | Цитировать Сообщить модератору
 Re: Получит ли второй пользователь свою ошибку раньше, чем первый пользователь?  [new]
брадобрей
Member

Откуда:
Сообщений: 4696
ORA_Worker
Область памяти с неправильным текстом останется SP, но она будет считаться свободной.

что за чепуха.

Shared Pool (за некоторым исключением) хранит то, что необходимо для общего доступа.
Синтаксически неверный SQL не будет использован другими, и не будет сохранен в Shared Pool
8 янв 11, 20:01    [10042960]     Ответить | Цитировать Сообщить модератору
 Re: Получит ли второй пользователь свою ошибку раньше, чем первый пользователь?  [new]
ORA_Worker
Member

Откуда: Москва
Сообщений: 263
Андрей Панфилов, ага, спасибо! сначала разбор - потом помещение в sharedpool
8 янв 11, 20:18    [10043004]     Ответить | Цитировать Сообщить модератору
 Re: Получит ли второй пользователь свою ошибку раньше, чем первый пользователь?  [new]
ORA_Worker
Member

Откуда: Москва
Сообщений: 263
хотя странно это
когда поступает запрос, происходит вычисление хэш-значения, которое помещается в sharedpool, а адрес на это значение в PGA(UGA)... далее происходит разбор запроса... а чего потом с этим хэш делается?
8 янв 11, 20:24    [10043018]     Ответить | Цитировать Сообщить модератору
 Re: Получит ли второй пользователь свою ошибку раньше, чем первый пользователь?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51786

Разбор (parse) запроса делается ещё на клиенте. Если на этом этапе находятся ошибки,
сервер этот запрос вообще не увидит.

Posted via ActualForum NNTP Server 1.4

8 янв 11, 20:33    [10043053]     Ответить | Цитировать Сообщить модератору
 Re: Получит ли второй пользователь свою ошибку раньше, чем первый пользователь?  [new]
брадобрей
Member

Откуда:
Сообщений: 4696
Dimitry Sibiryakov
Разбор (parse) запроса делается ещё на клиенте. Если на этом этапе находятся ошибки,
сервер этот запрос вообще не увидит.

тебе надо хорошенько выспаться после новогодних праздников
8 янв 11, 21:03    [10043150]     Ответить | Цитировать Сообщить модератору
 Re: Получит ли второй пользователь свою ошибку раньше, чем первый пользователь?  [new]
брадобрей
Member

Откуда:
Сообщений: 4696
ORA_Worker
когда поступает запрос, происходит вычисление хэш-значения, которое помещается в sharedpool

что значит "хеш-значение, которое помещается в sharedpool "?
в шаред пул помещается SQL и все причитающееся, а не хеш значение.
И помещается туда этот SQL, когда он синтаксически валидный
8 янв 11, 21:07    [10043159]     Ответить | Цитировать Сообщить модератору
 Re: Получит ли второй пользователь свою ошибку раньше, чем первый пользователь?  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54384
брадобрей
Dimitry Sibiryakov
Разбор (parse) запроса делается ещё на клиенте. Если на этом этапе находятся ошибки,
сервер этот запрос вообще не увидит.

тебе надо хорошенько выспаться после новогодних праздников
ну почему же
иногда это выполняет и средство разработки а-ля жаба
и хрен отключишь
:))
8 янв 11, 21:09    [10043163]     Ответить | Цитировать Сообщить модератору
 Re: Получит ли второй пользователь свою ошибку раньше, чем первый пользователь?  [new]
брадобрей
Member

Откуда:
Сообщений: 4696
andreymx
ну почему же
иногда...

согласен
8 янв 11, 21:15    [10043177]     Ответить | Цитировать Сообщить модератору
 Re: Получит ли второй пользователь свою ошибку раньше, чем первый пользователь?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51786

брадобрей
тебе надо хорошенько выспаться после новогодних праздников

RTFM:
OCI
Function         Number of Server Round Trips
OCIStmtPrepare() 0


А тепеь расскажи мне как запрос попадёт на сервер без передачи по сети. Телепатически?

Posted via ActualForum NNTP Server 1.4

8 янв 11, 22:16    [10043395]     Ответить | Цитировать Сообщить модератору
 Re: Получит ли второй пользователь свою ошибку раньше, чем первый пользователь?  [new]
брадобрей
Member

Откуда:
Сообщений: 4696
Dimitry Sibiryakov
А тепеь расскажи мне как запрос попадёт на сервер без передачи по сети. Телепатически?


из этого гениального пассажа я должен сделать вывод, что OCIStmtPrepare() выполняется на клиенте, или то что парсинг выполняется во время передачи по сети?
8 янв 11, 22:21    [10043415]     Ответить | Цитировать Сообщить модератору
 Re: Получит ли второй пользователь свою ошибку раньше, чем первый пользователь?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51786

брадобрей
из этого гениального пассажа я должен сделать вывод, что OCIStmtPrepare() выполняется на
клиенте, или то что парсинг выполняется во время передачи по сети?

Ну, если запрос не передаётся на сервер во время препарирования, то остаётся два варианта:
1) он препарируется на клиенте 2) он вообще не препарируется.

Posted via ActualForum NNTP Server 1.4

8 янв 11, 22:31    [10043455]     Ответить | Цитировать Сообщить модератору
 Re: Получит ли второй пользователь свою ошибку раньше, чем первый пользователь?  [new]
брадобрей
Member

Откуда:
Сообщений: 4696
Dimitry Sibiryakov
Ну, если запрос не передаётся на сервер во время препарирования, то остаётся два варианта:

то есть ты не уверен, передается он по сети или нет?
8 янв 11, 22:34    [10043474]     Ответить | Цитировать Сообщить модератору
 Re: Получит ли второй пользователь свою ошибку раньше, чем первый пользователь?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51786

брадобрей
то есть ты не уверен, передается он по сети или нет?

Конечно не уверен, ведь документация может ошибаться.

Posted via ActualForum NNTP Server 1.4

8 янв 11, 22:43    [10043522]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить