#sql-server
#sql-сервер
Вопрос:
Мой первый вопрос
Работает ли SQL Server асинхронно или синхронно?
-
если это работает асинхронно:
сколько асинхронных вызовов inserting (или любых других) может быть обработано SQL Server, или это зависит от виртуальной памяти? -
если это работает синхронно:
сколько синхронных вызовов может быть обработано SQL Server? Существует ли какая-либо очередь, поддерживаемая SQL Server для ожидающих запросов? Если да, то сколько ожидающих запросов может быть обработано..
Комментарии:
1. Смотрите раздел Как работает пакетное планирование или планирование задач здесь.
Ответ №1:
Надеюсь, я правильно понял ваш вопрос…
Любой вызов к базе данных является синхронным: вы вызываете, вы ждете результата. Но асинхронность против синхронности — это не совсем то, как работают СУБД
Идем дальше…
Главное для любой СУБД — параллелизм. СУБД предназначены для обработки 1000 одновременных подключений
У вас может быть много перекрывающихся и параллельных программ чтения, пока на сервере не закончатся ресурсы.
Где вы получаете некоторое представление об асинхронности против синхронности, так это вокруг записей. Они являются эксклюзивными и сериализованными (по умолчанию) и будут доступны для чтения блоков на время транзакции.
Для ресурсов (здесь приведены некоторые обобщения, которые делают их доступными 🙂
- Пропускная способность записи определяется в основном пропускной способностью ввода-вывода и во многом дизайном кода
- Чтение повсюду ограничено сетью / процессором и дизайном кода, опять же, в основном.
- Обычно память не должна быть проблемой, поскольку кэшированные данные являются общими
- На практике плохой код или дизайн больше всего влияет на использование ресурсов, за исключением больших баз данных / нагрузки
Например, плохое индексирование является одним из основных факторов, снижающих производительность базы данных
Комментарии:
1. спасибо за ответ, я не говорю о количестве подключений к соединению… я говорю о количестве одновременных операций на sql server …. например, если одновременно имеется 100 подключений, то все соединения отправляют запрос insert на sql server….
2. В худшем случае 100 вставок будут синхронными, одна за другой из-за синхронности. Если вставки распределены по большой таблице, то это повлияет на разные страницы, и они могут выполняться с некоторым параллелизмом
3. таким образом, это означает, что если есть 100 запросов к sql, но sql обрабатывает один за другим…. пожалуйста, дайте мне знать, где хранятся ожидающие запроса (которые еще не выполнены)…
4. @slash shogde: это происходит так быстро, что едва заметно. Но вам нужно было бы посмотреть информацию о блокировке в sys.системные процессы
5. просто последний вопрос.. сколько запросов на операции может быть обработано sql… просто воображаемая цифра…