我最近在oracle9i上进行大概10G数据的查询,发现很慢,大概要两分钟;而我在oracle8.1.7上进行实验,查询却很快,只要15秒。我不知道是什么原因。我的两种实验环境如下:
1. ibm 服务器 2G内存,windows2Kserver+oracle9.2.0.1
oracle数据文件放在四个盘上共20多个数据文件(因为数据可能很大),一个表数据是570 0000 行,查询很慢,大概要两分钟。(oracle SGA PGA 我己调整为大概一个G)2. 普通pc机,2.4PIIII 256M windows2000 +oracle8.1.7
oracle 数据文件放在一个盘上只有一个数据文件,上的表数据是一样的,也是570 0000 行,查询却很快,只要15秒。
请教高手,为什么这里查询的响应时间差距这么大,跟oracle,操作系统的设置有关吗,还是什么原因,望高手指点。
1. ibm 服务器 2G内存,windows2Kserver+oracle9.2.0.1
oracle数据文件放在四个盘上共20多个数据文件(因为数据可能很大),一个表数据是570 0000 行,查询很慢,大概要两分钟。(oracle SGA PGA 我己调整为大概一个G)2. 普通pc机,2.4PIIII 256M windows2000 +oracle8.1.7
oracle 数据文件放在一个盘上只有一个数据文件,上的表数据是一样的,也是570 0000 行,查询却很快,只要15秒。
请教高手,为什么这里查询的响应时间差距这么大,跟oracle,操作系统的设置有关吗,还是什么原因,望高手指点。
tkprof 看你的select 的执行情况
index 设计了吧 analyze 没有
1.网络性能2.操作系统和硬件性能3.数据库自身性能优化包括SQL语句优化、合理建立索引、性能分析和调优4.最好能分析瓶颈在何处,大表要分区提高性能
一个表数据文件,同样的数据,数据上好后,直接查询大概要3分钟, 对数据和索引作分析后,查询速度比较好,大概19秒。但一旦重新启动服务器,就又不行了,查询又是3分钟。重新对索引作分析查询速度又好了(19秒)。 按理说,给索引做的分析结果应该放在数据字典中能够存起来,为什么oracle9i不行呢?
同样在oracle8.1.7中不存在这个问题(查询一直是15秒左右)。所以结合上面的实验我觉得问题在服务器上,oracle9i中怎样实现将索引的分析结果存入数据字典并长期有效,这是我个人的一点看法。希望高手们能多加指点。
看你的对表的分析是否还在 应该在的
不行你还可以用dbms_stats.set_table_stats给表设置分析数据
2 ibm 服务器和普通pc对数据库的设置是否一样,大表的数据文件是否在不同的磁盘上,并对表都有Index?