查询超时

bogu 2006-06-02 04:22:53
用PHP做的一查询页面,点“查询”打开查询结果页面(此页面调用一存储过程来查出数据),打开那查询结果页面是一片空白,浏览器状态栏显示正在打开网页。网页及代码没有问题,查出原因是执行那存储过程时间太长,所有出现页面是一片空白。这存储过程直接在数据库运行都要一到二分钟。

有什么好的方法可以解决由于调用存储过程时间过长而使页面很久才打开(出现页面是一片空白)
修改这存储过程比较麻烦,我想在页面中通过缓存或异步调用等方式解决,有没有好的例子或其他好的解决方案,thanks
...全文
312 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gdj 2006-06-09
  • 打赏
  • 举报
回复
查询完数据库后怎样清除页面上已输出的“loading...”?

------------------------
用js控制
「已注销」 2006-06-09
  • 打赏
  • 举报
回复
恩,呵呵,经过优化后只要不使用无法使用索引的查询,就算有个几亿数据也用不上1分钟。呵呵。你的sql速度确实存在问题,或者在使用上不太合理。
ten789 2006-06-09
  • 打赏
  • 举报
回复
重写存储过程 经常性应用需要2分钟简直是在开玩笑
Dereky 2006-06-07
  • 打赏
  • 举报
回复
一段查询居然要用 2分钟???
我想你首先要解决的是 数据库本身的问题,而不是PHP超时

2分钟才能返回结果,你有耐心等,用户可没这个耐心.呵呵
bogu 2006-06-07
  • 打赏
  • 举报
回复
没人回复呀,郁闷中。。。。。
bogu 2006-06-06
  • 打赏
  • 举报
回复
Gdj:你本来页面就要执行2分钟,php总不能提前得到你的结果显示出来吧。你可以在查询数据库前echo "loading....";然后flush()将之显示出来,等得就不是全白了。

查询完数据库后怎样清除页面上已输出的“loading...”?
颓废的老猫 2006-06-05
  • 打赏
  • 举报
回复
用flush() 或者 Ajax
bogu 2006-06-05
  • 打赏
  • 举报
回复
谢谢大家,我正用yh801216、Gdj所说的试试看
我也想用cpio所说的异步做,有没有例子参考参考呀。

期待更好的解决方案
zeroleonhart 2006-06-02
  • 打赏
  • 举报
回复
The problem is the sp.
Gdj 2006-06-02
  • 打赏
  • 举报
回复
你本来页面就要执行2分钟,php总不能提前得到你的结果显示出来吧。你可以在查询数据库前echo "loading....";然后flush()将之显示出来,等得就不是全白了。
cpio 2006-06-02
  • 打赏
  • 举报
回复
如果实在慢,只能等待

正如你所说,可以通过异步查询的方式

通过XmlHTTP组件读取返回结果

开始读取后你的页面可以调出一个等待的动画什么的
indexroot 2006-06-02
  • 打赏
  • 举报
回复
给表的某些字段建立索引
「已注销」 2006-06-02
  • 打赏
  • 举报
回复
页面能用其他缓存什么的就都没问题,缓存就是在第一次调用时存储结果,在以后的查询中不再查询数据库而直接调用结果。随便你怎么做。

问题出在哪里就解决哪里的问题还是,像这种问题后果很严重的,那个存储过程可以考虑改,甚至改表结构等。
如果缓存能满足你的需要的话,暂时如此也行,

只要取消超时限制就行,程序开头set_time_limit(0);
ryl 2006-06-02
  • 打赏
  • 举报
回复
不懂
来学习

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧