Сколько заданий SQL может обработать сервер sql? - PullRequest
0 голосов
/ 06 июня 2018

Я создаю медицинскую систему базы данных, а затем пришел к точке, где я пытаюсь создать функцию уведомления, и я буду использовать в ней задания SQL, где ответственность за работу SQL заключается в проверке некоторых таблиц и объектов, которые будутПри обнаружении необходимости уведомления об изменении определенных данных их идентификаторы будут помещены в объект с именем Notification, и приложение будет вызывать триггер для проверки этой таблицы и отправки уведомления.

что я хочуспросить, сколько заданий SQL может обработать сервер sql?

Влияет ли количество запущенных заданий SQL в фоновом режиме на производительность моего приложения или производительность базы данных, так или иначе?

ПРИМЕЧАНИЕ: Задание SQL будет запускаться каждые 10 секунд

Не удалось найти никакой полезной информации в Интернете.

Заранее спасибо.

1 Ответ

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

Этот вопрос действительно не имеет достаточного фона, чтобы получить окончательный ответ.Каковы соображения?

  1. Действительно ли запросы в вашей десятисекундной работе завершаются за десять секунд, даже если ваша СУБД находится на пиковой транзакционной рабочей нагрузке?Очевидно, что если работа обычно не завершается в течение десяти секунд, вы получите кучу рабочих мест.
  2. Блокируют ли запросы в вашем задании таблицы и / или индексы, чтобы транзакционная нагрузка не могла работать эффективно?(Вы должны использовать SET ISOLATION LEVEL READ UNCOMMITTED; столько, сколько можете, чтобы чтение базы данных не блокировало вещи без необходимости.)
  3. Делают ли запросы в вашей работе много вставок и обновлений на много строк, и поэтому забиваютжурналы транзакций SQL Server?
  4. Насколько велик ваш сервер?(Ядра процессора? Оперативная память? Емкость ввода-вывода?) Насколько велика ваша база данных?
  5. Если ваш проект успешен и у вас много пользователей, ваши ответы на вышеуказанные вопросы останутся прежними?(Подсказка: нет.)

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

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

 DELETE FROM readings WHERE expiration_date >= GETDATE()

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

 SELECT something FROM readings

Вы можете реорганизовать запрос приложения, чтобы сказать

 SELECT something FROM readings WHERE expiration_date < GETDATE()

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

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

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