存储过程可以无限期运行,但是其中的步骤可以单独运行而不会出现问题

时间:2019-02-14 19:04:19

标签: mysql stored-procedures mysql-workbench mysql-5.7

我有一个用于Power BI项目的小型数据库。为了简单起见,假设我有单独的过程来加载维度和事实,称为LoadDimensions和LoadFacts。 LoadDimensions是加载19个维表的调用序列,LoadFacts相同,但有5个事实表。

如果我运行以下命令...

CALL LoadDimensions();  
CALL LoadFacts();

...维度在大约40秒内完成,事实在大约270秒内完成,因此所有内容的总运行时间仅需5分钟多一点。

我创建了一个主过程来加载称为LoadAllTables的所有内容。该过程正是您在上面看到的;它调用维过程,然后是事实过程。但是,如果在Workbench中调用LoadAllTables,它将无限期运行,直到我取消它为止。

是什么原因导致这种基本过程无限期地挂断?这一基本过程的各个步骤可以完全没有问题地执行?

我会说LoadFacts中的第五个事实表是最近添加的,在此之前,LoadFacts将在大约130秒内运行。第5个事实表将整个过程推到了5分钟以上,所以我认为可能有此问题,但是我已经禁用了Workbench中的读取超时,所以我认为并非如此。除此之外,加载第5个事实表的过程本身就没有问题,并且LoadFacts本身也没有问题。

0 个答案:

没有答案