如何在SQLite中估计数据库查询执行时间?

时间:2018-02-15 06:12:49

标签: android sqlite

我正在使用Android应用程序,并且我使用SQLite作为我的本地数据库。我已经为插入操作做了很多优化。我的数据集可以增长得相当大,例如数据库文件大小高达200-300MB。对于从数据库中读取操作,我想向用户显示进度条。由于数据库大小很大,这可能需要几秒钟,因此我不希望我的用户查看不确定的进度条。相反,我想提供一个进度条,其中包含大约剩余时间,以完成查询的执行。这不必是准确的。当我浏览文档时,可以保留.timer ON以查找执行任何查询所花费的总时间。但是,在执行查询之前是否可以估计查询所需的时间?你会怎么解决这个问题?

注意: - 这不是大众市场的Android应用程序。该应用程序在专门设计的硬件上运行,作为设备的一部分。

1 个答案:

答案 0 :(得分:1)

据我所知, Android无法提供在执行查询之前知道查询所需时间的选项,因为它取决于很多因素,例如您如何调用{{1} }查询,数据库大小,表格中没有行等。

如果您特别要显示进度条,那么我的建议是显示进度条,每1秒对进度条的剩余长度增加10%。即它将以这种方式增加 - 10%,19%[剩余90%的10%并增加到10%],27.1%[剩余81%的10%并增加到19%]并且从接收数据中获得100% D B。因此,进度条永远不会结束,直到从DB接收数据。

许多浏览器在加载页面内容时都使用此技术。