lt;lt;oracle管理之道》读书笔记1
1 SGA_MAX_SIZE的设置参考
1G内存 500MB
2G 1G
4 2500MB
8 5GB
16gb 10gb
2 10G的时候,产生了sga_target参数,设置该参数后,就不用另外再设置其他参数了,大小会自动调节,
比如alter system set sga_target=1024M,重新启动数据库起效果
3 LOCK_SGA
为保证SGA都被锁在物理内存中,不用page in/page out,可以设置lock_sga,默认为false,设定为true时,可以
全部锁在物理内存中
alter system set lock_sga=true scope=spfile;
有些操作系统不支持内存锁
4 pre_page_sga
oracle实例启动时,不会将所有sga设置的内存大小加载到操作系统中去,只是预约内存,如果要实例一开始就加载到物理内存中去,
但启动时间长点,能达到性能好的状态
alter system set pre_page_sga=true scope=spfile;
5 利用USE_INDIRECT_DATA_BUFFERS突破32位的2G内存限制
但副作用大,参考:
http://yangtingkun.itpub.net/post/468/492617
http://yangtingkun.itpub.net/post/468/492653
需要注意,使用USE_INDIRECT_DATA_BUFFERS参数,不能在使用其他9i以后新增的内存控制参数了,比如SGA_TARGET、DB_CACHE_SIZE等等
,必须通过DB_BLOCK_BUFFERS参数来指定内存的容量。
6 v$sgainfo
10g才引入的,可以查询SGA中的信息
select name,round(bytes/1024/1024)||'MB' "size",resizeable from v$sgainfo;
7 v$sgastat
SGA的统计信息
查看内存快还剩下多少
select pool,name,bytes/1024/1024MB from v$sgastat where name='free memory'
8 v$sga_target_advice
当设置了sga_target后,oracle会收集SGA相关的统计信息,通过v$sga_target_advice展现
还要确保statsistics_level参数不能为basic
show parameter statistics_level;
SQL> desc v$sga_target_advice
Name Null? Type
----------------------------------------- -------- ----------------------------
SGA_SIZE NUMBER --sga大小,就是sga的期望值
SGA_SIZE_FACTOR NUMBER --sga大小因子,也就是与实际sga大小的百分比
ESTD_DB_TIME NUMBER --设置到sga_size后dbtime消耗的期望变化
ESTD_DB_TIME_FACTOR NUMBER --dbtime消耗的变化因子,也就是体现出改变sga大小后性能的变化
百分比
ESTD_PHYSICAL_READS NUMBER --物理读的百分比
--SGA_SIZE_FACTOR为1代表的是当前实际sga大小。
SQL> select * from v$sga_target_advice order by sga_size;
9 数据缓冲区
1. 数据库高速缓冲区的大小设置
数据库高速缓冲区大小的设置有两种方式:
第一种方式是直接在参数文件内设置DB_CACHE_SIZE,DB_CACHE_SIZE参数是9i之后的版本才有的参数,其默认值为48 MB。
第二种方式是利用DB_BLOCK_BUFFERS和DB_BLOCK_SIZE这两个参数,DB_BLOCK_BUFFERS指定了数据库高速缓冲区中块的数量,DB_BLOCK_SIZE
则指定了每个块的大小。因此,数据库高速缓冲区的大小就等于DB_BLOCK_ BUFFERS×DB_BLOCK_SIZE。9i之后的版本,块的大小的默认值是
8 KB。
提示
DB_CACHE_SIZE和DB_BLOCK_BUFFERS是不能同时设置的,否则当实例启动时会有错误信息。
DB_CACHE_SIZE是可以动态修改的参数,修改后实例不需要重启。
按照一般经验,联机事务处理系统(On-line Transaction Processing,OLTP)中DB_CACHE_SIZE的大小可设置为SGA_MAX_SIZE/2到
SGA_MAX_SIZE×2/3之间,但还是需要根据实际的情况进行调整。
2. 清除数据库高速缓冲区
之前提到过,Dirty Buffer是指存放已修改,但尚未写入数据库的数据。如果数据库高速缓冲区中存在大量的Dirty Buffer,那么,就可能
导致整体性能下降,此时可以使用人工的方式将Dirty Buffer整批地写回到数据文件内。
在Oracle 9i版本中,可以使用以下的语句。
alter system set events = 'immediate trace name flush_cache';
另外,9i版本设置事件的方式可以是针对系统全部的,也可以是针对会话的(即,将该会话造成的Dirty Buffer写回)。
10g之后的版本(包含10g),可以使用以下方式。
alter system flush buffer_cache;
提示
Oracle 9i版本的方式可以针对整个系统进行Flush,也可以针对会话进行,将会话内的Dirty Buffer写回到数据文件内。
Oracle 9i版本的方式在Oracle 10g之后依然可以使用。
3 数据库高速缓冲区的分区管理
回收池(Recycle Pool)中:放到回收池中的数据,只要空间不够用,它们马上就会被释放出来。被放在回收池中的数据块不会被反复使
用。也就是说,这些数据块只在事务(Transaction)还存在时才会被用到,一旦事务结束,就会被释放出来。回收池的大小最好是默认池的
1/2。
保留池(Keep Pool):当数据只要放到保留池里时,就代表这个数据是需要常常被重复使用的,数据如果已经被放在保留池里,则数据会尽
可能地被放在里面。保留池的大小应该是默认池的10%
默认池(Default Pool):当没有指定时,数据就会放在默认池中,也就是说,放在默认池的数据利用的是LRU机制。
10 数据缓冲区的重要参数
1)DB_CACHE_ADVICE
从Oracle 9i版本开始,Oracle提供了一些自动检测性能的工具,用于提高系统性能。DB_CACHE_ADVICE就是其中一种,设置
DB_CACHE_ADVICE的作用就是在系统运行的过程中,通过监控相关的统计数据,为DBA提供数据库高速缓冲区的相关信息,以做最佳的调整。
DB_CACHE_ADVICE的设置有三种方式:
DB_CACHE_ADVICE=OFF
DB_CACHE_ADVICE=ON
DB_CACHE_ADVICE=READY
OFF代表不打开DB_CACHE_ADVICE。
DB_CACHE_ADVICE=ON表示开启DB_CACHE_ADVICE,但要注意,一旦开启(即为ON)时,Oracle会从共享池中获取一些内存空间,所以有可能会
影响性能。
DB_CACHE_ADVICE=READY表示在下次打开实例时,会预先分配足够的内存,通常建议使用此方式。
DB_CACHE_ADVICE可以动态设置,也就是使用ALTER SYSTEM SET…来修改,并且当DB_CACHE_ADVICE开启后,会将统计数据存储到V
$DB_CACHE_ADVICE内。
2) 2. DB_nK_CACHE_SIZE
Oracle 9i以后的版本可以同时支持不同大小的数据块(2 KB、4 KB、8 KB、16 KB及32 KB等5种),除了DB_BLOCK_SIZE之外,还可以设
置其他的大小,并且可以为不同尺寸的数据块指定不同大小的数据库高速缓冲区。而DB_BLOCK_SIZE的参数设置,称为标准数据块(Standard
Block),区间在2 KB至32 KB之间。在9i以后,除了系统表空间(System Tablespace)和临时表空间(Temporary Tablespace)必须使用标准数
据块外,所有其他表空间最多可以指定4种不同的标准数据块大小。
当设置好DB_nK_CACHE_SIZE之后,在配置表空间中可通过BLOCKSIZE参数来指定数据块大小,如以下示例所示。
在参数文件内设置DB_nK_CACHE_SIZE的方法如下:
db_16k_cache_size=16M
此参数也可以动态设置,语句示例如下
ALTER SYSTEM SET db_16k_cache_size = 16 SCOPE=MEMORY;
ALTER SYSTEM SET db_32k_cache_size = 32 SCOPE=MEMORY;
ALTER SYSTEM SET db_4k_cache_size = 4 SCOPE=MEMORY;
ALTER SYSTEM SET db_8k_cache_size = 8 SCOPE=MEMORY;
提示
不同大小的数据块不能相互混合存储。一个16 K的表空间必须通过DB_16K_CACHE_ SIZE来指定数据库高速缓冲区,不可以用4 K去存储。
如果DB_BLOCK_SIZE设置为8 K,就不可以再设置DB_8K_CACHE_SIZE 参数。
lt;lt;oracle管理之道》读书笔记1相关推荐
- Oracle PL/SQL 程序设计读书笔记 - 第14章 DML和事务管理
Oracle PL/SQL 程序设计读书笔记 - 第14章 DML和事务管理 Oracle PL/SQL 程序设计读书笔记 - 第14章 DML和事务管理 ACID原则:即一个事务具有原子性.一致性. ...
- 数据之道读书笔记-03差异化的企业数据分类管理框架
数据之道读书笔记-03差异化的企业数据分类管理框架 不同的企业或组织基于不同的目的,可以从多个角度对数据进行分类,如结构化数据和非结构化数据.内部数据和外部数据.原始数据和衍生数据.明细数据和汇总数据 ...
- 数据之道读书笔记-06面向“自助消费”的数据服务建设
数据之道读书笔记-06面向"自助消费"的数据服务建设 数据底座建设的目标是更好地支撑数据消费,在完成数据的汇聚.整合.联接之后,还需要在供应侧确保用户更便捷.更安全地获取数据.一方 ...
- 《SQL Server企业级平台管理实践》读书笔记——几个系统库的备份与恢复
原文:<SQL Server企业级平台管理实践>读书笔记--几个系统库的备份与恢复 master数据库 master作为数据库的主要数据库,记录着SQL Server系统的所有系统级信息, ...
- Oracle PL/SQL 程序设计读书笔记 - 第7章 使用数据
Oracle PL/SQL 程序设计读书笔记 - 第7章 使用数据 Oracle PL/SQL 程序设计读书笔记 - 第7章 使用数据 7.1 程序数据的命名 PL/SQL要求在给数据结构命名的时候应 ...
- 每个人的商学院--管理基础(第三章:管理工具)--读书笔记
第三章:管理工具 面向业绩:梦想归梦想,绩效归绩效 读书笔记: 管理工作并非总能收获大团圆的结局,还要时常做出真正艰难的决定. 管理只对绩效负责. 绩效就是达成公司的经营目标. 公司里的两层关系:第一 ...
- 每个人的商学院--管理基础(第五章:管理常见病)--读书笔记
破窗效应:无序邀请无序,混乱引发混乱 读书笔记: 建立秩序非常困难,可秩序一旦被破坏,将如山崩地裂般顷刻间灰飞烟灭. 作为管理者,必须高度重视破窗效应:1.立即处理(一旦发现破窗就要立即修补,否则,破 ...
- 你想学习吗?你会学习吗?你知道该如何学习吗?学习之道-读书笔记
作者: [美] 芭芭拉·奥克利(Barbara Oakley):出版社: 机械工业出版社 :出版年: 2016-11 前言 我们的大脑潜力无穷,却没有配备使用手册 思考:大脑没有使用说明手册,想要很好 ...
- 复制:高效程序员的45个习惯敏捷开发修炼之道 读书笔记
为什么80%的码农都做不了架构师?>>> 第一章 敏捷-高效软件开发之道 什么是敏捷开发方法? 从语法简单到c语言,从面向过程到面向对象语言到语言标准的建立,再到设计模式,以及 ...
最新文章
- css 字体大小_用一个 CSS 属性打造自适应网站
- 离散傅里叶变换(DFT)(为了使用而学习的DFT)
- 日期代码的js 中将2012年显示成了112年
- Docker 学习资源整理
- “元宇宙” 是什么东西?
- 在RHEL5/CentOS5上配置使用Open×××
- 使用 Swift 在 iOS 10 中集成 Siri —— SiriKit 教程
- Log4j配置学习文档之三 参考
- Linux虚拟网络设备之tun/tap
- vilatile用法总结
- HYSBZ - 2243 染色 (树链剖分+线段树)
- WinPE启动盘制作
- [openwrt]:斐讯K3C OPCC+中大H3C校园网认证配置指南(一)
- 【Nginx服务优化与防盗链】
- 十月上旬百度 阿里巴巴 迅雷搜狗最新面试七十题 第201 270题
- 《计算机网络》笔记摘抄汇总
- !include: could not find: nsProcess.nsh
- 如何让计算机停止打印,电脑打印提示print Splooer停止无法使用怎么办
- JDBC问题: Unknown error 1146 Query
- 国行Android手机使用google全套GMS服务小结