oracle导入数据,查询数据很慢

[复制链接]
查看11 | 回复1 | 2014-10-18 10:28:00 | 显示全部楼层 |阅读模式
大家好,我接触oracle数据库才几个月,也是自学,现在很菜,现在遇到如下问题,希望大家帮忙看看。
数据库版本9i
在数据库中导数据很慢,查询数据也很慢,比如运行select username from dba_users,都需要10多秒。我不知道问题出在哪里,应该查看哪些东西才能找出问题所在?
free -m查看只有16M空闲内存。

回复

使用道具 举报

千问 | 2014-10-18 10:28:00 | 显示全部楼层
楼主补充:
以下是我的一些查询结果select name,value from v$sysstat where name like 'parse%';
NAME
VALUE
---------------------------------------------------------------- ----------
parse time cpu
245140
parse time elapsed
747530
parse count (total)
176055425
parse count (hard)
2188
parse count (failures)
133这样一算,命中率挺高的,应该不是shared pool的问题吧?
SQL> select count(*) from x$bh where state=0;
COUNT(*)
----------
0
标记为free的buffer cache数量为1,有时为0,没有free buffer了,对影响oracle运行应该很大吧?
SQL> SELECT (P1.VALUE + P2.VALUE - P3.VALUE) / (P1.VALUE + P2.VALUE)
2FROM v$sysstat P1, v$sysstat P2, v$sysstat P3
3 WHERE P1.name = 'db block gets'
4 AND P2.name = 'consistent gets'
5 AND P3.name = 'physical reads'
6;
(P1.VALUE+P2.VALUE-P3.VALUE)/(P1.VALUE+P2.VALUE)
------------------------------------------------

.742522047
这个应该失算buffer cache命中率的,只有74.3%。

SQL> SELECT event, sum(decode(wait_time,0,1,0)) "Curr", sum(decode(wait_time,0,0,1)) "Prev", count(*)"Total" FROM v$session_wait GROUP BY event ORDER BY count(*);
EVENT
Curr PrevTotal
---------------------------------------------------------------- ---------- ---------- ----------
SQL*Net message to client
0
1
1
buffer busy waits
1
0
1
db file parallel write
0
1
1
enqueue
1
0
1
pmon timer
1
0
1
smon timer
1
0
1
rdbms ipc message
4
0
4
free buffer waits
8
0
8
SQL*Net message from client
12
0 12
9 rows selected.
这条好像是查找等待时间的,free buffer waits为8,不算大,但我不知对oracle运行(比如插入数据,查询数据的影响大不大。)的影响大不大?
如果是buffer cache的问题,那怎么处理?
我只知道alter system set events = 'immediate trace name flush_cache';
这样强行刷新buffer cache应该不行吧,我看到我的:
SQL> SELECT component,current_size,min_size FROM v$sga_dynamic_components;
COMPONENT
CURRENT_SIZE MIN_SIZE
---------------------------------------------------------------- ------------ ----------
shared pool
134217728134217728
large pool
83886080 83886080
buffer cache
1056964608 1056964608
这样一刷缓存不就全没了?
有没有只清空部分buffer cache的命令?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行