如何从SELECT语句输出进度消息?

Eri*_*ett 8 sql sqlanywhere

我有一个SQL脚本,我想在运行时输出进度消息.让它在SQL语句之间输出消息很容易,但是我有一些很长时间运行的INSERT INTO SELECT.有没有办法让select语句输出消息,例如每1000行或每5秒后?

注意:这适用于SQL Anywhere,但任何SQL方言中的答案都可以.

Gra*_*ank 5

无法检索单个查询的执行状态.没有主流数据库引擎提供此功能.
此外,任何进度实现都会产生可衡量的开销,因此如果查询已经花费了很长时间以至于您想要显示进度,那么通过显示所述进度可能不是设计目标而导致额外的减速.
您可能会发现有关估计SQL执行进度的文章很有帮助,但其实际意义有限.


Nea*_*all 3

SQL本身并没有提供这种事情。任何这样做的方法都将涉及直接与数据库引擎对话,并且不会成为跨数据库的标准。