Oracle8i Lite和Delphi中的问题(200分)

  • 主题发起人 主题发起人 tinyfan
  • 开始时间 开始时间
T

tinyfan

Unregistered / Unconfirmed
GUEST, unregistred user!
前台用Delphi,后台用Oracle8i Lite时,有这样一个问题: Delphi界面上用到一个
Query,一个DataSource,一个Dbgrid; 当Query的Sql语句中有用到参数时,查询时,和没
有用到索引的速度一样,其慢无比。哪位大虾知道,请给予解答。谢谢!
 
估计是调用Query的语句有问题,或者是Delphi对该数据库支持不好。
 
你将那个索引DROP,再重新创建一下。
然后再试一试。

我曾经也碰到这个问题,百思不得其奥秘,最后将索引删除再重建就可以了,
速度马上就上去了。
 
问题现象:
前台用Delphi,后台用Oracle8i Lite时,有这样一个问题: Delphi界面上用到一个Query,
一个DataSource,一个Dbgrid; 查询的数据量为大约10万条左右。当Query的Sql语句中有用
到参数时,例如在Where条件中用到了code=:code, 查询时,和没有用到索引的速度一样,
其慢无比。当然,在sql*plus中、Delphi的Sql explorer中的速度很快(有用到索引)

1、 在与之比较的Oracle、Sql Anywhere数据库中不存在这种问题。所写的代码和
Sql语句一模一样,只是连接的后台数据库不同。
2、 用Sql Monitor 跟踪,发现其过程与Sql Anywhere 完全一样。
3、 用 ADO 访问数据库,也就是不经过BDE,速度还是很慢
4、 为了不用到参数,用另外一种方法变通,就是在Sql语句中直接加入变量值。
例如SQL.Add(‘select count(code) from userinfo where pycode like ’+ ‘’’’
+Edit1.text+’’’’);速度还是没有改变,也就是只要Sql语句不是固定的,它的速度
就很慢。
 
你这个code是不是索引?是索引得话速度就应该上去了
 
多人接受答案了。
 
后退
顶部