Хранимая процедура выполняется бесконечно, но шаги внутри нее могут выполняться без проблем - PullRequest
0 голосов
/ 14 февраля 2019

У меня небольшая база данных, которую я использую для проекта Power BI.Для простоты предположим, что у меня есть отдельные процедуры для загрузки моих измерений и фактов, называемые LoadDimensions и LoadFacts.LoadDimensions - это последовательность вызовов для загрузки 19 таблиц измерений, а LoadFacts такая же, но с 5 таблицами фактов.

Если я запускаю следующее ...

CALL LoadDimensions();  
CALL LoadFacts();

... измерения завершаются примерно за 40 секунд, а факты завершаются примерно за 270 секунд, так что все вместе проходит немногоболее 5 минут.

Я создал одну основную процедуру для загрузки всего, что называется LoadAllTables.Эта процедура именно то, что вы видите выше;это вызывает процедуру измерений, сопровождаемую процедурой фактов.Однако, если я вызываю LoadAllTables в Workbench, он работает неопределенно долго, пока я не отменю его.

Что вызывает такую ​​основную процедуру - ту, чьи отдельные шаги могут быть выполнены абсолютно без проблем - зависать бесконечно?

Я скажу, что 5-я таблица фактов в LoadFacts былаНедавно добавленный, и до того, как это было сделано, LoadFacts запустится примерно за 130 секунд.5-я таблица фактов подтолкнула весь процесс чуть выше 5-минутной отметки, поэтому я подумал, что в этом может быть что-то, но я отключил тайм-аут чтения в Workbench, так что я не думаю, что это так.Кроме того, процедура загрузки этой 5-й таблицы фактов завершается сама по себе без проблем, и опять же, LoadFacts сама завершается без проблем.

...