=========================================================================
oracle 提供了BUFFER CACHE 的多缓冲池技术。
把 buffer cache 分为:default,keep ,recycle 。默认情况下所有表都在default下。
Oracle的db_buffer_pool由三部分组成
1. buffer_pool_default
2. buffer_pool_keep
3. buffer_pool_recycle
--表缓存
alter table ..... storage(buffer_pool keep);
--查看哪些表被放在缓存区 但并不意味着该表已经被缓存
select table_name from dba_tables where buffer_pool='keep';
--查询到该表是否已经被缓存
select table_name,cache,buffer_pool from user_TABLES where cache like '%Y';
--已经加入到KEEP区的表想要移出缓存,使用
alter table table_name nocache;
--批量插入ORACLE建议用 insert all into ... insert into ...select 1 from dual;
--查询当前用户下表的情况
select table_name,cache,buffer_pool from user_TABLES;
--对于普通LOB类型的segment的cache方法
alter table t2 modify lob(c2) (storage (buffer_pool keep) cache);
--取消缓存
alter table test modify lob(address) (storage (buffer_pool keep) nocache);
--查询段
select segment_name,segment_type,buffer_pool from user_segments;
--对基于CLOB类型的对象的cache方法
alter table lob1 modify lob(c1.xmldata) (storage (buffer_pool keep) cache);
--查询该用户下所有表内的大字段情况
select column_name,segment_name from user_lobs;
SELECT name,value FROM V$sysstat
WHERE name in ('dbblock gets','consistent gets','physical reads');
通过查询结果命中率=1-physical reads/(dbblock gets+consistent gets) 如果命中率<0.6~0.7,则应增大Db_block_buffers。
Oracle 10g中,与内存相关的参数可以归为两类:
自动调优的SGA参数:包括DB_CACHE_SIZE、SHARED_POOL_SIZE、LARGE_POOL_SIZE和JAVA_POOL_SIZE。
手动SGA参数:包括LOG_BUFFER、STREAMS_POOL、DB_NK_CACHE_SIZE、DB_KEEP_CACHE_SIZE和DB_RECYCLE_CACHE_SIZE。
查看用户表、索引、分区表占用空间
select segment_name, sum(bytes)/1024/1024 Mbytese from user_segments group by segment_name;
1、表占用空间
--查看某张表
SELECT SUM(BYTES)/1024/1024 M FROM USER_SEGMENTS WHERE SEGMENT_NAME = 'WORKINFO';
--查看该用户下所有表
select segment_name, sum(bytes)/1024/1024 Mbytese from user_segments where segment_type='TABLE' group by segment_name;
2、索引占用空间select segment_name ,sum(bytes)/1024/1024 from user_segments where segment_type ='INDEX' group by segment_name;
3、分区表TABLE PARTITION占用空间
select segment_name,sum(bytes)/1024/1024 Mbytes from user_segments where segment_type='TABLE PARTITION' group by segment_name;
v$db_object_cache 一般用于查询shared_pool,
数据缓冲区一般用V$BH或V$CACHE这两个数据字典.
块缓冲区包括:
keep pool
recycle pool
default pool
keep pool 和default pool的管理是一样的,都通过所谓的LRU机制管理。如果频繁地使用一个块,它就被高速缓存。如果由一段时间不接触某个块,它就可能被其他地块挤出缓冲区。只不过keep pool 的竞争只发生在以这个池为目标的段中;而回收池(recycle pool)里,块的老化与KEEP池中的不同。在KEEP池中,块是尽量保持,在RECYCLE池中块一旦不用,就马上老化掉。
ORACLE推荐使用
DB_KEEP_CACHE_SIZE = integer [K | M | G]
DB_RECYCLE_CACHE_SIZE = integer [K | M | G]
前后两者不能同时出现在init.ora中
oracle每行有一个初始序号
================
db_16k_cache_size big integer 0
db_2k_cache_size big integer 0
db_32k_cache_size big integer 0
db_4k_cache_size big integer 0
db_8k_cache_size big integer 0
db_cache_size big integer 956301312
db_keep_cache_size big integer 0
db_recycle_cache_size big integer 0
SQL> SELECT 128*1024*1024 FROM DUAL;
128*1024*1024
-------------
134217728
ALTER SYSTEM SET DB_CACHE_SIZE = 822083584;
ALTER SYSTEM SET DB_KEEP_CACHE_SIZE = 134217728;
========================
在Oracle的文档中有这样的解释:
db block gets:Number of times a CURRENT block was requested.
consistent gets:Number of times a consistent read was requested for a block.
physical reads:Total number of data blocks read from disk. This number equals the value of "physical reads direct" plus all reads into buffer cache.
---------------------------------------------
针对以上3个概念进行的说明解释及关系如下:
1、DB Block Gets(当前请求的块数目)
当前模式块意思就是在操作中正好提取的块数目,而不是在一致性读的情况下而产生的块数。正常的情况下,一个查询提取的块是在查询开始的那个时间点上存在的数据块,当前块是在这个时刻存在的数据块,而不是在这个时间点之前或者之后的数据块数目。
2、Consistent Gets(数据请求总数在回滚段Buffer中的数据一致性读所需要的数据块)
这里的概念是在处理你这个操作的时候需要在一致性读状态上处理多少个块,这些块产生的主要原因是因为由于在你查询的过程中,由于其他会话对数据块进行操作,而对所要查询的块有了修改,但是由于我们的查询是在这些修改之前调用的,所以需要对回滚段中的数据块的前映像进行查询,以保证数据的一致性。这样就产生了一致性读。
3、Physical Reads(物理读)
就是从磁盘上读取数据块的数量,其产生的主要原因是:
1、 在数据库高速缓存中不存在这些块
2、 全表扫描
3、 磁盘排序
它们三者之间的关系大致可概括为:
逻辑读指的是Oracle从内存读到的数据块数量。一般来说是'consistent gets' + 'db block gets'。当在内存中找不到所需的数据块的话就需要从磁盘中获取,于是就产生了'phsical reads'。
=======================
=========================================================================
分享到:
相关推荐
Oracle数据库系统是全球广泛使用的大型关系型数据库管理系统之一,由美国甲骨文公司(Oracle Corporation)开发。对于初学者来说,从零开始学习Oracle需要掌握一系列的基础知识,这些知识涵盖了数据库的基本概念、...
本压缩包"Oracle学习资料.zip"显然是针对Oracle数据库的学习资源,旨在帮助初学者和进阶者深入理解和掌握Oracle的相关知识。 首先,Oracle数据库的基础概念是学习的起点。这包括理解数据库是什么,以及Oracle数据库...
以下是对Oracle学习笔记中提到的一些关键知识点的详细解释: 1. **SQL执行顺序**: SQL语句的执行顺序是:`FROM` -> `WHERE` -> `SELECT` -> `GROUP BY` -> `HAVING` -> `ORDER BY`。首先从`FROM`子句开始,确定...
Oracle DBA 学习笔记 ...该 Oracle DBA 学习笔记涵盖了 Oracle 数据库维护的多个方面,包括表空间统计、SGA 信息、命中率等。这些知识点对于 Oracle DBA 来说非常重要,可以帮助他们更好地维护和优化数据库。
《成功之路Oracle11g学习笔记》是一本专为初学者设计的Oracle数据库学习资源,旨在帮助读者系统地掌握Oracle11g的基础知识。Oracle11g是Oracle公司推出的一个重要版本,它提供了许多增强的功能和优化,使得数据库...
在“MSDN Oracle学习笔记”中,我们可以期待找到关于Oracle数据库的详细讲解和实践指导。 首先,Oracle数据库的基础知识是必不可少的。这通常涵盖数据库系统的基本概念,如SQL(结构化查询语言)的使用,数据类型,...
总结起来,Oracle学习涵盖了从基础概念到高级特性的广泛内容,包括SQL语言、PL/SQL编程、数据库管理、性能优化、备份恢复、安全权限以及一系列高级特性。通过深入学习和实践,可以逐步从新手成长为精通Oracle的专家...
本文将对“Oracle学习日志总结”中的关键知识点进行深入探讨,帮助读者理解和优化Oracle数据库的使用。 1. **共享SQL和参数化查询**:共享SQL是指在数据库中重用已解析的SQL语句,减少了解析时间,提高了性能。使用...
本文主要针对ORACLE数据库的学习笔记进行深入解析。 首先,SQL是Structured Query Language的缩写,即结构化查询语言,它是用于管理关系数据库的标准语言。SQL主要包括五种类型的子语言:DDL(Data Definition ...
### Oracle 动态性能表学习:深入理解 v$sysstat #### 一、v$sysstat 视图概述 在 Oracle 数据库管理中,动态性能视图(Dynamic Performance Views)是一组特殊的内置视图,提供了关于数据库实例及其内部组件的...
### Oracle 查看表空间表信息 在Oracle数据库管理中,了解如何查看表空间表信息是一项重要的技能。这有助于DBA(数据库管理员)或开发人员更好地理解数据库结构、优化查询性能以及进行必要的维护工作。 #### 标题...
1. 优化器选择:Oracle提供了三种优化器,即RULE(基于规则)、COST(基于成本)和CHOOSE(选择性)。RULE优化器依赖于预定义的优化规则,而COST优化器根据统计信息计算执行计划的成本来决定最佳路径。CHOOSE优化器...
OCP(Oracle Certified Professional)是Oracle认证的专业级数据库管理员证书,对于希望深入理解和掌握Oracle数据库技术的人来说,这是一份非常有价值的学习资料。以下是对这份"最牛逼的Oracle 11g OCP学习笔记"中的...
本资料“ORACLE学习.rar”显然是一份关于学习Oracle数据库的资源集合,可能包括教程、笔记、实战案例等内容。下面将详细阐述Oracle数据库的一些核心知识点。 1. 数据库概念与架构: Oracle数据库是一个逻辑数据存储...
但我可以根据标题“涂抹Oracle 三思笔记之一步一步学Oracle”和给定的相关知识点要求,构造一篇关于Oracle数据库学习的基础知识点文章,以满足您的需求。 Oracle数据库是全球范围内广泛使用的企业级关系数据库管理...
其中,`v$sysstat`是Oracle DBA们最为关注的动态性能表之一,它记录了数据库实例自启动以来的各种资源使用情况。本文将基于提供的内容对`v$sysstat`进行详细解读,并探讨其在性能监控和调优中的应用。 #### v$...
### Oracle 数据库学习指南 #### 一、通过索引提高查询效率 在Oracle数据库中,索引是一种重要的数据结构,用于提高数据检索的性能。它类似于书籍中的索引,可以帮助快速定位到特定的数据行。 ##### 创建表与批量...
Oracle 认证学习笔记 本文档主要讲述 Oracle 认证学习笔记,涵盖了 Oracle 数据库体系结构基础、系统全局区(SGA)、实例(Instance)、Oracle 存储器结构等知识点。 一、 Oracle 数据库体系结构基础 Oracle ...