前台运行和后台运行sql在速度上有明显差别吗?(20分)

  • 主题发起人 主题发起人 ohcyj
  • 开始时间 开始时间
O

ohcyj

Unregistered / Unconfirmed
GUEST, unregistred user!
有个前台delphi的程序执行一个sql,2个半小时了还没有出来
但我把脚本放在pl/sql中执行,1个半小时就出来了,请问是否前台执行会
比后台运行的慢?还是有其他的原因??!!!
 
前台比后台慢是肯定的。
 
这个倒不是, 前台执行其实是前台将事务提交给服务器执行而已, 没有本质区别, 不过如果
执行时间过长, 会超时而导致执行失败
 
前台操作要穿从服务器传数据过来当然漫
 
设置的问题,,看一下sql处理是在本地还是服务器,如果是本地,,那就肯定慢了,
 
我觉得这个问题要从几个方面来看
首先是数据量,如果本身数据量就很大,那SQL放在前台还是后台应该都快
不到那里去。
但是如果业务规则比较细的话,有很多东西要判断,那可能就会有较明显的
区别了。

还是老话,看情况而定,一些规则多的就放在后台,少的就放在前台。
 
要尽量减少访问数据库的次数.优化语句很重要
 
plsql存储过程是在数据库系统的线程中执行,而delphi对数据操作需要通过各种
接口层与数据库系统进行数据交换并计算,如果在另一台机器上,还要在网络层上
花掉大把的cpu,严重时,效率为40:1(我亲眼所见)
 
delphi把sql提交数据库(在主机上)执行后,在查询阶段delphi是否还和
数据库通讯?还是说要等到查询完毕才再次通讯?
如果是后者,那么是否说明前台和后台查询相差不大的时间
(除去开始和结束的数据交换以外)???
 
前台将SQL语句传过去还需要时间
但是执行都是在后台,你的速度慢了半小时是因为
你脚本太多。 其实简短的SQL完全可以不计较前台将语句传输的时间

 
确切的说不是慢了半小时
至少慢一个半小时,后台由于数据库重起,就没有再之行了
今天我试了一下,sql不变,只是里面的in (...)条件少了
几个,运行结果是前台13分55秒,后台14分12秒
这样看来速度其实是差不多的
所以我估计昨天可能是因为数据库很忙,才导致前台执行那么久还没有出来吧
 
本人愚见:

前台跟后台处理速度应该是基本一样的吧,都是有数据库的数据库引擎来处理查询,主要是
当数据量比较大是会有传送时间差额,

另外就是若在程序中来执行,若到一定时间没有得到结果就会当作失败处理(这应该关系到
连接数据库的参数设定了)
 
瘦客户,胖服务器的问题。
在客户端运行sql语句必须通过网络传输,还必须在服务器处理队列中等待。
 
catfox, 你去图书馆查书,1种方法,打个电话把所有的书或大部分书都拿回家,然后挑出你
要的几本,其余的不要。
第二种方法,你打个电话给管理员,说你就要那本那本,她给你送过来你要的,那个快?
那个代价大?
 
呵呵,同Crane
 
后退
顶部