Oracle查看当前缓存
时间: 2023-12-05 14:57:47 浏览: 32
Oracle数据库中有多种缓存,比如数据块缓存、共享池、库缓存等。以下是查看这些缓存的方法:
1. 查看数据块缓存:可以使用以下SQL语句查询当前数据块缓存的使用情况:
```
SELECT name, value/1024/1024 AS MB
FROM v$statname a, v$sesstat b, v$statname c
WHERE a.statistic# = b.statistic#
AND b.sid = Sys_Context('USERENV', 'SID')
AND a.name = 'db block gets'
AND c.name = 'db block size'
```
这个查询会返回当前会话中数据块缓存的大小和使用情况。
2. 查看共享池:可以使用以下SQL语句查询当前共享池的使用情况:
```
SELECT pool, name, sum(bytes)/1024/1024 AS MB
FROM v$sgastat
WHERE pool IN ('shared pool', 'large pool', 'java pool')
GROUP BY pool, name
ORDER BY pool, name
```
这个查询会返回共享池、大对象池和Java池中各个结构的大小和使用情况。
3. 查看库缓存:可以使用以下SQL语句查询当前库缓存的使用情况:
```
SELECT name, sum(bytes)/1024/1024 AS MB
FROM v$sgastat
WHERE pool = 'buffer_cache'
GROUP BY name
ORDER BY name
```
这个查询会返回当前库缓存中各个对象的大小和使用情况。