优化实例内存
来源:互联网 发布:神机妙算软件介绍 编辑:程序博客网 时间:2024/04/30 04:28
优化实例内存 ---oracle database 11g 性能优化攻略
1.使用自动内存管理
oracle11g 新增了自动内存管理的特性
通过设置如下两个参数来实现
memory_max_target
memory_target
2.管理多个缓冲池
为了确保经常使用的数据段缓存在缓冲池中,而不会被回收,可以使用多个缓冲池,keep池和recycle
如果数据库里包含大量的被频繁访问的表,那么设置keep池让频繁访问的这些表存储在keep池中,这样做可以将频繁访问的表一直保留换冲池中而不被交换出去
如果数据库每天要访问一两次非常大的对象,避免这些大对象占用过多的缓冲区,把其他正常访问的对象挤出缓冲池,可以设置recycle池来存放这些大对象
通过设置如下参数来使用keep池和recycle池
db_keep_cache_size
db_recycle_cache_size
为数据段指定默认的缓冲池
alter table table_name storage(buffer_pool=keep)
alter table table_name storage(buffer_pool=recycle)
3.设置内存的最小值
使用自动内存管理,建议设置sga和pga内存的最小值,在内存自动分配时,分配内存最小值就是设置的最小值
4.监控内存调整操作
监控内存的调整操作来合理分配内存通过视图v$memory_target_advice
查看视图v$memory_resize_ops视图来观察自动内存管理的分配操作,来评估内存的抖动情况
5.优化内存使用
6.调优PGA内存分配
设置合理PGA来减少磁盘排序,通过查询视图或者awr报告来设置合理的PGA值
v$pgastat,v$sql_workarea_histogram
7.配置服务器查询缓存
服务器结果集缓存为经常执行的sql查询和pl/sql函数的结果提供一种非常好的方法
相关参数
result_cache_max_size 服务器结果集缓存设置分配内存
result_cache_max_result 一个结果缓存能够使用的最大内存百分比,默认为服务器结果集缓存大小的15%
result_cache_remote_expiration 默认情况任何包含远程对象的结果都不会被缓存
8.管理结果集缓存
可以通过dbms_result_cache包来监控和管理服务器结果缓存
9.缓存sql查询结果
设置result_cache_mode为force强制所有sql查询结果都被数据库缓存起来,oracle推荐设置为manual,可以通过提示来启用特定查询结果集缓存/*+ RESULT_CACHE */
通过表注释启用结果集查询
alter table tablename result_cache(mode force)
可以通过提示/*+ NO_RESULT_CACHE */关闭查询结果缓存
10.缓存客户端结果集
11.缓存PL/SQL函数结果
12.配置oracle数据库的智能缓存
oracle数据库智能缓存是oracle 11g R2的一个新特性,闪存缓存利用闪存设备的i/o速度比磁盘存储快
闪存是一个只读缓存,当干净的数据库由于空间的压力被清出缓冲区高速缓存,这些数据块就被移入闪存缓存中,如果后来又需要这些数据,数据库会再把这些数据从闪存缓存移回SGA中
启用闪存(目前闪存缓存特性仅限于solaris和oracle linux操作系统中)
db_flash_cache_file 设置闪存的路径名和文件名称
db_flash_cache_size 设置闪存缓存的大小
13.调节重做日志缓冲区大小
alter system set log_buffer=4096000 scope=spfile;
1.使用自动内存管理
oracle11g 新增了自动内存管理的特性
通过设置如下两个参数来实现
memory_max_target
memory_target
2.管理多个缓冲池
为了确保经常使用的数据段缓存在缓冲池中,而不会被回收,可以使用多个缓冲池,keep池和recycle
如果数据库里包含大量的被频繁访问的表,那么设置keep池让频繁访问的这些表存储在keep池中,这样做可以将频繁访问的表一直保留换冲池中而不被交换出去
如果数据库每天要访问一两次非常大的对象,避免这些大对象占用过多的缓冲区,把其他正常访问的对象挤出缓冲池,可以设置recycle池来存放这些大对象
通过设置如下参数来使用keep池和recycle池
db_keep_cache_size
db_recycle_cache_size
为数据段指定默认的缓冲池
alter table table_name storage(buffer_pool=keep)
alter table table_name storage(buffer_pool=recycle)
3.设置内存的最小值
使用自动内存管理,建议设置sga和pga内存的最小值,在内存自动分配时,分配内存最小值就是设置的最小值
4.监控内存调整操作
监控内存的调整操作来合理分配内存通过视图v$memory_target_advice
查看视图v$memory_resize_ops视图来观察自动内存管理的分配操作,来评估内存的抖动情况
5.优化内存使用
6.调优PGA内存分配
设置合理PGA来减少磁盘排序,通过查询视图或者awr报告来设置合理的PGA值
v$pgastat,v$sql_workarea_histogram
7.配置服务器查询缓存
服务器结果集缓存为经常执行的sql查询和pl/sql函数的结果提供一种非常好的方法
相关参数
result_cache_max_size 服务器结果集缓存设置分配内存
result_cache_max_result 一个结果缓存能够使用的最大内存百分比,默认为服务器结果集缓存大小的15%
result_cache_remote_expiration 默认情况任何包含远程对象的结果都不会被缓存
8.管理结果集缓存
可以通过dbms_result_cache包来监控和管理服务器结果缓存
9.缓存sql查询结果
设置result_cache_mode为force强制所有sql查询结果都被数据库缓存起来,oracle推荐设置为manual,可以通过提示来启用特定查询结果集缓存/*+ RESULT_CACHE */
通过表注释启用结果集查询
alter table tablename result_cache(mode force)
可以通过提示/*+ NO_RESULT_CACHE */关闭查询结果缓存
10.缓存客户端结果集
11.缓存PL/SQL函数结果
12.配置oracle数据库的智能缓存
oracle数据库智能缓存是oracle 11g R2的一个新特性,闪存缓存利用闪存设备的i/o速度比磁盘存储快
闪存是一个只读缓存,当干净的数据库由于空间的压力被清出缓冲区高速缓存,这些数据块就被移入闪存缓存中,如果后来又需要这些数据,数据库会再把这些数据从闪存缓存移回SGA中
启用闪存(目前闪存缓存特性仅限于solaris和oracle linux操作系统中)
db_flash_cache_file 设置闪存的路径名和文件名称
db_flash_cache_size 设置闪存缓存的大小
13.调节重做日志缓冲区大小
alter system set log_buffer=4096000 scope=spfile;
0 0
- 优化实例内存!
- 优化实例内存
- Android 内存优化实例
- Android 内存优化-实例
- java内存优化实例----缓存Bitmap
- Android 内存优化-实例讲解MAT
- java内存优化实例----Bitmap的高效加载
- Unity3D 优化 1 ( cs 实例化与内存变化)
- Unity3D 优化 2 ( lua 实例化与内存变化)
- c++内存管理优化之ptmalloc,tcmalloc,jemalloc使用实例
- [Android实例] Android有效解决加载大图片内存溢出问题及优化虚拟机内存
- Android内存优化七:MAT具体分析内存泄漏实例1
- Android内存优化八:MAT具体分析内存泄漏实例2
- Android内存优化九:MAT具体分析内存泄漏实例3
- 内存优化
- 内存优化
- 内存优化
- 内存优化
- 第四周 项目一-三角形类的构造函数(二)
- 山寨免费软件的阴谋!
- 终于找到了-----------让工资再涨的编程方式
- 将ppt文件如何转换成pdf文件
- Redirecting携带数据
- 优化实例内存
- Android Studio 1.1.0 配置androidannotations框架
- POJ - 1521 Entropy
- android获取在线视频略缩图
- Discover Feature Engineering, How to Engineer Features and How to Get Good at It
- mysql命令行修改字符编码
- C++中vector用法
- PHP5.6新特性介绍
- Contiki的Event_Driven 模型的整理与思考