Funnybluejeans
23

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


 Обычно СУБД 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т список

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