Funnybluejeans : другие произведения.

23

Самиздат: [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь|Техвопросы]
Ссылки:


 Ваша оценка:

  Обычно СУБД Oracle при подключении пользователя создает новый процесс. Это
  принято называть конфигурацией выделенного сервера, поскольку на все время сеанса ему
  выделяется отдельный серверный процесс. Сеансы и выделенные серверы находятся в
  отношении один к одному. Клиентский процесс (любая программа, пытающаяся под-
  ключиться к СУБД) будет непосредственно взаимодействовать с соответствующим вы-
  деленным сервером по сети, например, через сокет TCP/IP. Именно этот сервер будет
  получать и выполнять SQL-операторы. Он будет читать файлы данных, а также искать
  необходимые данные в кэше. Он будет выполнять операторы UPDATE и PL/SQL-код.
  Единственное его назначение - отвечать на получаемые SQL-запросы.
  
  СУБД Oracle также может работать в режиме многопотокового сервера (multi-threaded
  server - MTS), в котором при подключении не создается дополнительный поток или
  процесс UNIX. В режиме MTS СУБД Oracle использует пул "разделяемых серверов" для
  поддержки большого количества пользователей. Разделяемые серверы - это просто ме-
  ханизм организации пула подключений. Вместо запуска 10000 выделенных серверов (это
  действительно много, если речь идет о процессах или потоках) для 10000 сеансов ре-
  жим MTS позволяет обслуживать их с помощью гораздо меньшего количества разделя-
  емых серверов, которые (как следует из названия) будут совместно использоваться все-
  ми сеансами. Это позволяет СУБД Oracle поддерживать намного больше сеансов, чем в
  режиме выделенного сервера. Машина, на которой работает сервер, может не справиться
  с поддержкой 10000 процессов, но управление 100 или 1000 процессами для нее вполне
  реально. В режиме MTS разделяемые серверные процессы обычно запускаются сразу старте СУБД и отображаются в списке, выдаваемом командой ps (в представленных выше
  результатах выполнения команды ps процесс ora_s000_ora816dev представляет собой
  разделяемый серверный процесс).
  
  Принципиальное отличие режима MTS от режима выделенного сервера состоит в том,
  что клиентский процесс, подключившийся к СУБД, никогда не взаимодействует непос-
  редственно с разделяемым сервером, как это происходит в случае выделенного сервера.
  Он не может взаимодействовать с разделяемым сервером, так как соответствующий
  процесс используется совместно. Чтобы обеспечить совместное использование этих про-
  цессов, необходим другой механизм взаимодействия. Для этого в СУБД Oracle исполь-
  зуется процесс (или набор процессов), которые называют диспетчерами. Клиентский
  процесс взаимодействует по сети с процессом-диспетчером. Процесс-диспетчер поме-
  щает запрос клиента в очередь запросов в SGA (это одно из многих назначений области
  SGA). Первый же свободный разделяемый сервер выберет и обработает этот запрос (на-
  пример, запрос может иметь вид UPDATE T SET X = Х+5 WHERE Y = 2). По заверше-
  нии выполнения команды разделяемый сервер поместит ответ в очередь ответов. Про-
  цесс-диспетчер следит за очередью и немедленно передает полученный результат
  клиенту. Концептуально поток информации в режиме MTS выглядит следующим обра-
  зом:
  Клиентское подключение посылает запрос диспетчеру. Диспетчер поместит этот зап-
  рос в очередь запросов в области SGA (1). Первый свободный разделяемый сервер вы-
  берет этот запрос (2) из очереди и обработает его. Когда разделяемый сервер закончит
  выполнение, ответ (коды возврата, данные и т.д.) помещается в очередь ответов (3), после
  чего выбирается диспетчером (4) и возвращается клиенту.
  С точки зрения разработчика нет никакой разницы между подключением к серверу в режиме MTS и подключением к выделенному серверу.
 Ваша оценка:

Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
О.Болдырева "Крадуш. Чужие души" М.Николаев "Вторжение на Землю"

Как попасть в этoт список

Кожевенное мастерство | Сайт "Художники" | Доска об'явлений "Книги"