Запуск соединений в базе данных Azure-Sql с «Master» - PullRequest
0 голосов
/ 12 июня 2018

Я использовал Azure-Sql-Server.Хостинг моей базы данных и использование Entity-Framework (C #) поверх него.Я использовал Standart S3 уровня. Этот уровень цен ограничен одновременным подключением к БД 200.

Моя система работает в архитектуре Micro-services.Каждый из моих сервисов имеет открытые подключения к БД.

Вот так выглядит моя строка подключения

metadata = res: ///Model1.csdl | res: ///Model1.ssdl |res: //*/Model1.msl; provider = System.Data.SqlClient; строка подключения провайдера = "Источник данных = mydb.database.windows.net; Начальный каталог = производственный; Persist Security Info = True; Идентификатор пользователя = пользователь @my; пароль = mypass; Pooling = true; максимальный размер пула = 2; Enlist = false; "

время от времени я отслеживаю количество подключений к моей БД.

Используя

SELECT DB_NAME(eS.database_id) AS the_database, eS.is_user_process, COUNT(eS.session_id) AS total_database_connections
    FROM sys.dm_exec_sessions eS 
    GROUP BY DB_NAME(eS.database_id)
        , eS.is_user_process
    ORDER BY 1, 2;
    END

, который дает мне результат:

enter image description here

Если я суммирую всесоединения я получаю в результате всего 215 соединений.Это может привести меня в соответствие с некоторыми ограничениями подключения, которые я нахожу время от времени.

  1. Вопрос в том, что все эти соединения "не-пользовательский процесс" с "мастером"?(111 соединений) кто их спрашивает?кому они нужны?как найти?
  2. Все эти соединения, указанные выше, являются счетчиком как часть предела 200 соединений?

Спасибо!

1 Ответ

0 голосов
/ 12 июня 2018

Те сеансы, которые вы видите как is_user_process = 0, являются сеансами, запускаемыми мониторингом и оповещениями Azure, они не учитываются как часть лимита уровня для сеансов, и их можно безопасно игнорировать.Позднее в 2017 году команда Database Engine удалила фильтр, который скрывал внутренние сеансы / соединения этих типов.Причина, по которой эта блокировка была удалена, состояла в том, чтобы вы могли улучшить видимость сеансов, подключающихся к вашей базе данных.Для получения дополнительной информации, пожалуйста, прочитайте здесь Вклад Девина Райдера (MSFT) в ветку форума.

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

SELECT *
FROM sys.dm_exec_sessions s, sys.databases d
WHERE s.database_id =d.database_id
and d.name='youruserdatabase'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...