同要样的SQL语句:Select 字段1,字段2... FROM 表名
在SQL Server查询分析器中显示15万左右条记录的表只用27秒,但是我在三层结构中却要差不多2分钟的时间,这是为什么啊?
还有要怎样操作才能同时在DBGRID上显示数据另一边又同时在打开数据库呢?就像在SQL Server里的企业管理器一样,它是一边显示数据一边打开的,但我在三层结构中是等到查询完了才打开的。
在SQL Server查询分析器中显示15万左右条记录的表只用27秒,但是我在三层结构中却要差不多2分钟的时间,这是为什么啊?
还有要怎样操作才能同时在DBGRID上显示数据另一边又同时在打开数据库呢?就像在SQL Server里的企业管理器一样,它是一边显示数据一边打开的,但我在三层结构中是等到查询完了才打开的。
查询应该不要太多时间,关键是传送和显示吧?你可以接收一部分并添加到DBGRID后刷新一下窗体。
如果你在查询分析器中用27秒,那么三层中打开这个SQL正常不会超过35秒
OpenDB;
begin
ADOQuery.Close ;
ADOQuery.SQL.Clear ;
ADOQuery.SQL.Add('SELECT A.xh,A.zwxm,A.ywx,A.ywm,B.xbmc,C.gjzwmc,A.sfzhm,A.jg,');
ADOQuery.SQL.Add('A.csly,A.nl,A.ttmc,A.lxdz,A.dwmc,A.xfzje,A.rzcs');
ADOQuery.SQL.Add('FROM KRLSJL AS A,xb AS B,gj AS C Where A.xb=B.xb and A.gjdm=C.gjdm Order By A.xh');
ADOQuery.Open;
end;在客户端用SocketConnection连接,一个DataSource和一个ClientDataSet和一个DBGrid.
然后通过以下代码调用显示数据:
SocketConnection.AppServer.OpenDB;
ClientDataSet.Active := true;各位看看我以上设计有什么问题呢?