社区
Sybase
帖子详情
oracle数据库查询特别慢的原因及对策………………
flyinthesky
2002-01-25 11:23:44
希望大家能多多献技献策,我的数据库这几天告别慢,基本上做十万取几十的一般条件查询都需要差不多五分种。都快愁死我了!!
怎么办?
还有,系统的性能对oracle的影响有多大,希望大家多发言。
...全文
2761
28
打赏
收藏
oracle数据库查询特别慢的原因及对策………………
希望大家能多多献技献策,我的数据库这几天告别慢,基本上做十万取几十的一般条件查询都需要差不多五分种。都快愁死我了!! 怎么办? 还有,系统的性能对oracle的影响有多大,希望大家多发言。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
28 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xinpingf
2002-02-04
打赏
举报
回复
flyinthesky(我想飞………) (2002-1-27 0:25:07) 得0分
to joi(海天一色)
我的id是用序号生成器生成的,且自动循环,所以你的办法不能满足要求!!!
id 一般是用来作唯一约束的,如果有循环产生就会有重复了,那样就失去了它的意义了
backlove
2002-02-04
打赏
举报
回复
具体问题具体分析
MountLion
2002-02-04
打赏
举报
回复
jamesbert(嘎子)的方法就是用来释放空间的
dengyongfu
2002-01-29
打赏
举报
回复
对init.ora文件中的参数:db_block_buffers,shared_pool_size,db_block_size这几个参数影响最大,其中db_block_size只有在建库时指定,不能修改,默认为2k,最好改成8k以上。具体配置要根据你的服务器的硬件配置来设置,可以给一个大概的配置如下:
如果服务器内存为512 M,连接100台客户机则:
增加以下参数:
open_cursors = 400
dml_locks = 500
transactions = 200
修改以下参数为下列值:
db_block_buffers = 50000
shared_pool_size = 150000000
processes = 120
log_buffer = 32768
global_names = false
job_queue_processes = 6
如果服务器内存为256 m,连接50台客户机则:
增加以下参数:
open_cursors = 400
dml_locks = 500
transactions = 150
修改以下参数为下列值:
db_block_buffers = 25000
shared_pool_size = 75000000
processes = 80
log_buffer = 32768
global_names = false
job_queue_processes = 6
如果服务器内存为128m,连接20台客户机则:
增加以下参数:
open_cursors = 400
dml_locks = 500
transactions = 100
修改以下参数为下列值:
db_block_buffers = 15000
shared_pool_size = 40000000
processes = 50
log_buffer = 32768
global_names = false
job_queue_processes = 6
flyinthesky
2002-01-28
打赏
举报
回复
谢谢大家,我准备做先捡简单的做一些,如果效果好,马上回来送分。
另外,oracle系统哪些配置对数据查询速度有影响?!
flyinthesky
2002-01-28
打赏
举报
回复
有钱的出钱,有力的出力,没钱没力的给捧个场…………
boby_v
2002-01-27
打赏
举报
回复
同意sky_blue,not in 不会使用索引,建议用not exists
建议适当调整数据库性能。
flyinthesky
2002-01-27
打赏
举报
回复
to joi(海天一色)
我的id是用序号生成器生成的,且自动循环,所以你的办法不能满足要求!!!
蓝天
2002-01-27
打赏
举报
回复
select count(*) from productlist where not exists (select id from product_ml where id = productlist .id);
flyinthesky
2002-01-27
打赏
举报
回复
up!!!
alflor
2002-01-27
打赏
举报
回复
以上各位的解决方法都不错,如果还是有问题的话,我这种方法试试看:
可能是操作太多,使的文件的空间粹片干扰,有一个办法是:
初始化其空间:
即:先用 exp导出该表(记住要备份好),
然后,删除该表。
最后,用imp导入到数据库中。
看看怎么样?
llzczf
2002-01-27
打赏
举报
回复
我见议你先进行全表分析 analyze table table_name estmate...看语法,然后对所有的索引进行rebuild。最重的是要看where条件能否用上索引呀。
dengyongfu
2002-01-27
打赏
举报
回复
关键查询时要用到索引,避免大表的全表扫描,而且要注意关联表的顺序,哪个表做驱动表等!可以用plan_table分析一下查询的路径呀!
dengyongfu
2002-01-27
打赏
举报
回复
不会这么慢吧!我的数据库里记录数已经达到2千万条了,从这个表,而且还有关联两三个3、4万条数据的表,出一张报表也只用30秒之内呀!
MountLion
2002-01-26
打赏
举报
回复
如果是频繁删除的表,还要考虑“高水位线”问题。
也就是要释放空间。
wsh
2002-01-26
打赏
举报
回复
主要原因是索引,还有一个最关建的因素是你的查询中所使用的条件,首先,条件的字段应该有索引,每二,条件字段的取值应该范围大,如:性别字段的取值只能为"男"和"女",这种字段应该尽可能地不出现在And 语句。
mycode
2002-01-26
打赏
举报
回复
首先检查索引;
如果建了索引,再用explain plan检查是否用上索引;
如果用上了索引,再看数据库的参数配置和实际机器的物理性能参数。
一般系统的性能对oracle的影响不会特别大,不可能做十万做几十这种会花几分钟。
flyinthesky
2002-01-26
打赏
举报
回复
还有,如果有详细资料更好了。
我的邮箱:falleave@163.com
joi
2002-01-26
打赏
举报
回复
不要使用not in这语句,这就是你的查询慢的原因。
可以用>max and <min来查。
flyinthesky
2002-01-26
打赏
举报
回复
感谢大家的支持,请大家继续多发言:
另外,我以前一直做程序员,最近开始搞系统,所以有些系统配置不是很懂,所以还请大家做详细的说明。
系统用的unix前一段时间,一直没有问题,库的索引都没有问题,是我从前做程序做的,应该没有问题。最近发现有些慢,我开始认为是系统数据过多的问题,但经过清理所有效果,但效果不明显。而且过了两天又慢了下来!
下面这条语句是我在清理一些无效数据时做的,特别慢,其中product_ml为基本表,记录数在两万左右,productlist为详细资料,及相关产品库,是操作频率特别高的库,记录数据有几十万。
select count(*) from productlist where id not in (select id from product_ml);
这么一条语句就用时近十分种!!!
最后查询出的结果为:九万多。
我不太清楚怎么会这么慢!我想问一下MountLion(人不寐),你所说的释放空间的问题, 不知能否详细说明。
加载更多回复(8)
oracle
事务污染,
Oracle
数据库完全破损/损坏
对策
Block Corruption造成的影响对商业运行造成的直接影响数据损坏导致业务停止数据恢复时间变长修复工作发生错误,造成二次灾害寻找
原因
的时间变长数据损坏的主要
原因
复杂并且有可能被分割的Layer的风险系统中数据保护...
电脑知识与技术社内直收8月刊低价邀代理·第10卷第20期目录参考
4629
ORACLE
数据库性能调整与优化研究…………………………………… 刘恩军 4631 基于闪存的数据库缓冲区替换算法优化研究…………………………… 敖建华 4634 建立新疆标准文献数据系统实现标准文献的信息化管理...
系统崩溃后
oracle
9i数据文件恢复过程
windows 2000 advance ... 开始修复……………………………… 结果无法修复,只好叫业务系统开发人员赶紧发通知,业务停止一天,缓和一下时间,想好
对策
进行数据恢复。 第一考虑的是我的备份是在凌晨3点开始,恰好不
Oracle
数据库配置完全实战手册
Oracle
8以8.1.5为界分为普通版本和internet版本。普通版版本号8.0.x,接触较多的是8.0.5;internet版版本号包括8.1.5(Release 1),8.1.6(Release 2),8.1.7(Release 3)。普通版简称
Oracle
8,in...
oracle
12配置安全与更新,
Oracle
12c 数据库安全核心技术讨论
Oracle
Data Redaction
Oracle
Data Redaction对应用户权限的实时访问控制根据用户的权限以及客户端信息,Redaction实时数据修正应用代码代表在不必要的数据库中完成列访问的控制根据客服中心以及技术支持的职责不同...
Sybase
2,596
社区成员
25,614
社区内容
发帖
与我相关
我的任务
Sybase
Sybase相关技术讨论区
复制链接
扫一扫
分享
社区描述
Sybase相关技术讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章