Значительные колебания производительности с MS SQL Server 2016? - PullRequest
0 голосов
/ 22 марта 2020

У меня есть задание ETL (извлечение, преобразование, загрузка, разработанное с помощью Safe FME 2018) и работающее на MS SQL Server 2016. Это задание обрабатывает только обычные данные (без пространственных данных): данные извлекаются из нескольких MS SQL Серверные таблицы, преобразованные с помощью FME и загруженные обратно в базу данных в несколько других таблиц. Задание ETL разделено на 5 подзадач: подзадачи с 1 по 4 записывают свои результаты в несколько таблиц, 5-е подзадача собирает все записанные данные и записывает их в другую базу данных.

Это задание последовательно выполняет множество операторов SQL Некоторые из них довольно сложные и продолжительные (5-10 минут).

Если я запускаю этот процесс несколько раз подряд, используя один и тот же набор данных (около 20 000 записей для обработки), результат очень запутанный:

  • Выполнить 1 и 2 в последнюю очередь около 8 минут, как и ожидалось
  • прогон 3 никогда не заканчивается: процесс застревает в первом SQL и зависает навсегда.
  • Если я убью этот третий прогон и выполню прогон 4 и 5, все в порядке снова, мы до 8 минут.
  • пробег 6 снова зависает
  • и так далее ...

Понятия не имею, где на go далее с моим анализом ошибок. На мой взгляд, все операторы SQL должны работать нормально. Есть ли на сервере MS SQL какие-либо магические действия c, такие как оптимизация или кэширование запросов или что-то еще, блокирование или блокирование моих запросов? Есть намеки?

С уважением, Тобиас

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