网站建设资讯

NEWS

网站建设资讯

oracle怎么查表缓存,oracle数据库缓存查看

怎么查看oracle数据库数据缓冲区大小

日志缓冲区Log_buffer是Oracle专门用于存入重做日志的内存区域。

“专业、务实、高效、创新、把客户的事当成自己的事”是我们每一个人一直以来坚持追求的企业文化。 成都创新互联是您可以信赖的网站建设服务商、专业的互联网服务提供商! 专注于成都做网站、成都网站制作、软件开发、设计服务业务。我们始终坚持以客户需求为导向,结合用户体验与视觉传达,提供有针对性的项目解决方案,提供专业性的建议,创新互联建站将不断地超越自我,追逐市场,引领市场!

数据库启动时,可以看到:

SQL startup

ORACLE 例程已经启动。

Total System Global Area 85006980 bytes

Fixed Size 453252 bytes

Variable Size 46137344 bytes

Database Buffers 37748736 bytes

Redo Buffers 667648 bytes

数据库装载完毕。

数据库已经打开。

Redo Buffers就是分配给Log_buffer的内存大小。

对日志缓冲区的大小,可以从下面的视图中查询的到:

SQL select * from v$parameter;

也可以

SQL show parameter log_buffer

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

log_buffer integer 524288

从这儿查询出的数据,是在配置文件中配置的数据,配置文件有:SPFILEORA92.ORA,INITora92.ORA等。

这个值和真实的日志缓冲区的大小不同。如果要知道真实的Log_buffer的大小,可以用下面的方法查询:

SQL select * from v$sgastat where name ='log_buffer';

POOL NAME BYTES

----------- -------------------------- ----------

log_buffer 656384

上面的这个值,是Oracle的SGA实际分配给Log_buffer的大小。

另外,还可以从 v$sga中查询:

SQL select * from v$sga;

NAME VALUE

-------------------- ----------

Fixed Size 453252

Variable Size 46137344

Database Buffers 37748736

Redo Buffers 667648

这个值也就是Oracle启动时分配给Log_buffer的大小。

那这个值为什么和实际的大小有差别呢?

SQL select (667648-656384)/1024 ||'K' from dual;

(66

---

11K

相差11K,那这11K干什么用呢?

这11K是Oracle为了保护Log_buffer,分配出来的日志保护页。

怎么查看oracle表空间,剩余大小,表空间利用

1、因为oracle运行在Linux系统下,首先,要连接Linux系统。

2、连上后,进行oracle控制台。输入命令: sqlplus  / as sysdba;

3、在sql命令行,输入:

SELECT UPPER(F.TABLESPACE_NAME) "表空间名",D.TOT_GROOTTE_MB "表空间大小(M)",D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",

TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比",F.TOTAL_BYTES "空闲空间(M)",F.MAX_BYTES "最大块(M)"

FROM (SELECT TABLESPACE_NAME,ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES,

FROM SYS.DBA_FREE_SPACE,GROUP BY TABLESPACE_NAME) F,

(SELECT DD.TABLESPACE_NAME,ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB,

FROM SYS.DBA_DATA_FILES DD,GROUP BY DD.TABLESPACE_NAME) D,

WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME,ORDER BY 1;

4、这样就可以查看到相应结果。 完成效果图。

如何查看ORACLE把哪些表缓存表到内存了

SQL show user

User is "SYS"

SQL select owner,object_id from dba_objects where object_name='A';

OWNER                           OBJECT_ID

------------------------------ ----------

ROME                                60026

SQL select count(*) from x$bh where obj=60026;

COUNT(*)

----------

0

SQL select * from rome.a;

ID

--------------------

10.100

10.110

10.111

SQL select count(*) from x$bh where obj=60026;

COUNT(*)

----------

6

SQL select count(*) from x$bh where obj=60026 and state=1;

COUNT(*)

----------

6

SQL alter system flush buffer_cache;

System altered

SQL select count(*) from x$bh where obj=60026 and state=1;

COUNT(*)

----------

0

SQL select * from rome.a;

ID

--------------------

10.100

10.110

10.111

SQL select count(*) from x$bh where obj=60026 and state=1;

COUNT(*)

----------

6

SQL

如果有兴趣可以看一下执行计划在cache和no cache情况下物理读的变化。


分享标题:oracle怎么查表缓存,oracle数据库缓存查看
URL地址:http://cdweb.net/article/dsdheos.html