Внутренняя работа SQL Server

#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… просто воображаемая цифра…