删除后的数据库居然变慢了(200分)

  • 主题发起人 主题发起人 luming
  • 开始时间 开始时间
L

luming

Unregistered / Unconfirmed
GUEST, unregistred user!
我们单位用oracle 8.03数据库,其中一个表已达70万条记录,为不影响速度,
删除了其中的一半数据,但没有想到的是,删除后的数据库居然变慢了,
更奇怪的是,在应用程序中(delphi程序)查询一条记录需要用10秒种,
但在SQL plus中不到一秒。非常奇怪,谁能给我一个答案?
 
删除数据之后变慢是因为数据库碎片的问题吧,export之后import试验一下。
至于查询速度有差异是因为BDE的问题吧。
 
最好把你的Delphi中查询记录的语句贴上来,不然不好判断。
 
sql语句非常简单
select * from ghxx where menzh=:p1
然后给参数赋值,再打开。
毛虎林说的我想到过,但我觉得有一点还是不可思议
如果说是有碎片,那么在SQL PLUS 中为什么不慢,如果说是
BDE有毛病,那么在DB EXPLORER中也不慢,而偏偏在应用程序中慢
但SQL语句又是一样的。
 
这个表里面有大字段(text、image)吗?
你试试只选择一个字段(最好是整型或字符串型),是不是还是很慢?
另外这个查询以前正常吗?是不是只有这个查询异常?
 
是不是只是辑上的删除,而不是物理上的删除!
 
建议:
增加 Prepare 语句,可加快。
 
我觉得SQL在DELPHI中很慢,比VFP慢得多,你可以不用SQL来实现同样的功能,速度不慢,
谁与我有同感,谁与我意见不一?
 
不要用'*',优化你的Where子句
 
没有任何大字段,以前程序运行良好,运行任何查询都存在这个问题;
在删除之前,速度也还可以,这至少说明程序没有太大的问题
我认为主要问题出在oracle的性能优化上,但我不知道该怎样处理。
 
我已经找到原因了,是索引坏了,删除后重建就行了
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
835
SUNSTONE的Delphi笔记
S
S
回复
0
查看
730
SUNSTONE的Delphi笔记
S
S
回复
0
查看
738
SUNSTONE的Delphi笔记
S
S
回复
0
查看
765
SUNSTONE的Delphi笔记
S
后退
顶部