数万条记录的表,已索引,Locate的时候为何那么慢? 数万条记录的表,按需要Locate的列索引,用TQuery打开并按该列排序,打开很快,但第一次Locate某条记录时非常慢,第二次很快,为什么?有解决的办法吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 hehe ,看来你对locate的机理还不清楚.当使用locate,bde会将所有的数据获取到客户端,然后在本地进行查找,所以跟你是否在数据库中使用了索引没有关系,速度慢在数据的传输.第二次locate时,由于数据已经在客户端了,所有bde在本地查找,数据当然很快.同locate相同原来的还有filter. 所有在使用locate和filter时要特别小心,当数据量很大时会很慢.解决方法.不要使用locate,直接写sql语句去数据库获取数据. 同意楼上的说法,用SQL语句,再复杂点儿的就用存储过程......... Tquery中不要把所有记录都打开,可以select top 500 * ...locate记录的时候重新用sql语句查询 谢谢各位,道理我是明白了,但问题还是没有解决。后来我改用在程序动态生成SQL语句(用到like关键字),来查找匹配的记录,还是非常慢,但我在SQL Explorer中用同样的语句测试,非常快,为什么?如何解决?另外,因为只有一条语句,所以不想用存储过程。 是啊,有时用SQL Explorer或别的类似软件运行SQL比在程序中快些,为什么?? 贴出你写的sql语句,一般不会慢的, 同意楼上的说法,用SQL语句,......... 亮剑:还在酝酿? 开发外贸管理软件如何设计编码 求助...请问一下FCtrlsd7 在那里????? data module 如何使用 帮忙看一看吧,数据库如何设置好?用什么报表,怎么做? 这个消息处理怎么做呢??? Delphi7 裡為何沒有報表控件頁. 一个高手的问题? 偷懒之:棒个忙,找两组件 如何得到AUTOCAD中某一层的数据? 老生常谈的问题... 如何将记录锁定在某一记录不能动?
不要使用locate,直接写sql语句去数据库获取数据.
locate记录的时候重新用sql语句查询