Как работает контекст PL / SQL? - PullRequest
3 голосов
/ 12 сентября 2011

У меня есть некоторые сомнения по поводу контекста PL / SQL, есть ли:

  1. Контекст PL / SQL является статическим?
  2. Контекст PL / SQL является синхронизированным?
  3. если процедура была вызвана два раза в одно и то же время, первая из них занимает 20 секунд, чтобы завершить ... вторая будет ждать эти 20 секунд, чтобы начать выполнение?

спасибо.

Ответы [ 2 ]

5 голосов
/ 12 сентября 2011

Каждый сеанс базы данных, который ссылается на пакет, имеет независимый экземпляр пакета.Все состояния пакета (т. Е. Глобальные переменные пакета) различны для каждого сеанса.

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

3 голосов
/ 12 сентября 2011

Ваши вопросы немного сложны для понимания.Я постараюсь ответить на него любым способом.

  1. PL / SQL - процедурный язык.Так что я бы не стал говорить о случаях .Код существует только один раз, переменные пакета существуют один раз за сеанс, а локальные переменные существуют один раз за вызов процедуры или функции.Вы не можете получить доступ к другим переменным сеанса или памяти.

  2. Все вызовы кода PL / SQL являются синхронными.Нет таких понятий, как многопоточность или общая память (в PL / SQL).Обратите внимание, что Oracle является многопользовательской системой.Таким образом, другие сеансы могут одновременно изменять данные в базе данных.И многие из этих изменений временно скрыты от вас из-за изоляции транзакции.Но это не влияет на любые переменные в памяти.

  3. Процедуры никогда не блокируются, если они не пытаются изменить ту же строку базы данных, что и другой сеанс.Но это не относится к какому-либо фрагменту кода PL / SQL, а также может быть испытано с помощью команды SQL, запускаемой из другого инструмента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...