Сколько открытых соединений может иметь сервер базы данных одновременно? - PullRequest
3 голосов
/ 24 января 2011

Здравствуйте. Я пытаюсь подключиться к резидентной базе данных пула с Oracle 11g. Теперь у меня есть один вопрос: есть ли у меня 1 сервер базы данных на сервере. Сколько одновременных запросов может обработать мой сервер базы данных в данный момент, будет ли это один или несколько одновременно?

Если перефразировать мой вопрос, если Client1 запрашивает запрос на выборку, скажем, 100 лучших результатов, а Client2 запрашивает выбор чего-то еще, обрабатывает ли сервер оба в один и тот же момент или завершает первый полученный запрос затем посещает следующий запрос ??

Ответы [ 4 ]

7 голосов
/ 24 января 2011

В соответствии с документами здесь: http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/listenercfg.htm

это зависит от платформы.(Это также зависит от системы баз данных, но вы упомянули Oracle 11g, поэтому я специально на это ответил.)

Примечание:

Число одновременных запросов на подключение по умолчанию - операционная система.-конкретный.Стандартные настройки TCP / IP в операционной системе Linux и Microsoft Windows:

operating Операционная система Linux: 128

icroMicrosoft Windows XP Professional SP2: 10

icroMicrosoftWindows 2003 Server Enterprise Edition: 200

Для других баз данных вы всегда можете воспользоваться Google "Максимальное количество одновременных подключений (введите тип БД здесь)" *

А на самом деле технически один процессор можетобрабатывать только один расчет за раз, поэтому в действительности, когда вы спрашиваете «В тот же момент» технически ответ - нет.

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

2 голосов
/ 24 января 2011

Как утверждает @David, процессор может сделать только одну вещь в данный момент.

Тем не менее, на ваш вопрос нелегко дать простой ответ. Сервер будет обрабатывать запросы в очереди в простейшем случае (игнорируя такие вещи, как ограничения ресурсов). Однако, как только первый запрос должен отказаться от управления из-за дискового ввода-вывода или любого другого запроса ресурса, второй запрос получает шанс. Это очень хорошо может завершиться до первого, в зависимости от того, что делает каждый запрос.

2 голосов
/ 24 января 2011

СУБД может обрабатывать множество соединений одновременно, обычно сотнями. Однако обычно несколько запросов (может быть 2-3) на ядро ​​будут выполняться одновременно.

@ Дэвид, правда, один процессор может обрабатывать только один расчет за раз, но когда нагрузка привязана к диску, у него есть много свободного времени для обработки других запросов, ожидая загрузки данных.

0 голосов
/ 24 января 2011

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

Если вы используете пул соединений, то каждое из этих соединений в пуле использует один из сеансов экземпляра базы данных и один из его процессов.(Кто-то может поправить меня в разнице между преданными и общими слушателями, но это примерно верно).Каждый запрос (запрос) по соединению в пуле использует уже настроенное соединение, поэтому ему не требуется новый сокет TCP / IP и нет накладных расходов, связанных с созданием сокета / сеанса - что является одной из причин, по которым выв первую очередь используйте пул.

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

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

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