У меня небольшая база данных, которую я использую для проекта 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 сама завершается без проблем.