检查查询是否已完成

时间:2014-06-02 13:14:32

标签: sql sql-server perl dbi

我需要在一个相当大的表上执行一些查询,如何检查查询是否已完成?

主要问题是查询最多需要10分钟,我想告诉用户,因此webbrowser,它仍在运行,所以只需等待$sth->fetch*完成就不是一个选项它会"暂停"脚本,直到有数据被提取。

我检查了文档,但似乎没有$dbh->has_finished()$dbh->has_data()这样的功能。

1 个答案:

答案 0 :(得分:3)

事件循环应该可以进行异步数据库查询。我建议你看一下AnyEvent::DBI。诀窍是使用条件变量。查询以异步方式执行。当查询完成时,它调用一个在条件变量上广播的回调子。您可以使用$cv->ready来检查查询是否已完成。