个人建网站多少钱,php做电商网站的难点,小型企业网络拓扑图,公众号中微网站开发Oracle缓存由两个参数控制SGA_TARGET和PGA_AGGREGATE_TARGET#xff0c;设置了这两个参数#xff0c;其他的基本内存部分都由Oracle自动配置为最优值#xff0c;这也是Oracle推荐的方式。 SGA_TARGET 和PGA_AGGREGATE_TARGET是动态参数#xff0c;可以在不重启数据库的情况… Oracle缓存由两个参数控制SGA_TARGET和PGA_AGGREGATE_TARGET设置了这两个参数其他的基本内存部分都由Oracle自动配置为最优值这也是Oracle推荐的方式。 SGA_TARGET 和PGA_AGGREGATE_TARGET是动态参数可以在不重启数据库的情况下修改。但是SGA_TARGET受限于 sga_max_sizeSGA_TARGET不能超过sga_max_size所以要增大sga_target先要增大sga_max_size而sga_max_size是静态参数修改sga_max_size必须重启Oracle。 所以修改sga_target和pga_aggregate_target的过程如下 1、修改sga_max_size
SQLALTER SYSTEM SET sga_max_size4g scopespfile;
2、重启Oracle 3、设置参数sga_target和pga_aggregate_target alter system set sga_target4G;alter system set pga_aggregate_target1g; 如果使用的是10g已经是ASM, oracle会根据统计的信息自动的来调整你的内存组件的大小你只需要设置sga_target即可。当然你可以手动设置 db_cache_size如果设置了的话Oracle会在自动调整内存大小的时候把这个作为db_cache_size的最小值。 对于sga_target,在动态修改的时候最大值不能操过sga_max_size, 如果是 用scopespfile这个方式来修改可以超过sga_max_size应该此时sga_max_size也跟着变大了如果超过的话。 Oracle 对数据库的cache有他自己的计算的10g以后内存是动态的根据对你使用系统的统计来进行调整的如果出现问题这块不是原因你之所以db cache还没有上去可能是访问的数据比较少不过你加大db_cache_size的值会保留这个内存空间的但是也是一样的数据 load到内存里才看得到变化。 数据访问是什么样的访问你的系统是OLAP还是OLTP这些应用上的东西对你的决定也有影响的要谨记数据库的优化和维护不仅仅是DBA来做的。如果是到了只能通过DBA来做这一步的话就相当于看病已经到了拿手术刀这一步了。 你的改变带来的风险和代价最高。 要想减少磁盘读,只能增大内存的使用.楼主可以看看这个视图v$db_cache_size,并执行下面的查询:
select block_size, size_for_estimate, size_factor, estd_physical_read_factor, estd_physical_reads from v$db_cache_advice;
Oracle在这个视图中针对db_cache_size的大小会给出一些建议。
下面解释几个列的含义 size_for_estimate估计的cache size大小 size_factor 估计的cache size大小与当前大小的比值 estd_physical_reads在估计的cache size大小情况下会产生的物理读数量 estd_physical_read_factor估计的物理读数量与当前物理读数量的比值。 例子
SIZE_FOR_ESTIMATE | SIZE_FACTOR | ESTD_PHYSICAL_READ_FACTOR | ESTD_PHYSICAL_READS 20 0.0893 6.1454 270840 40 0.1786 3.0632 135003 60 0.2679 2.4908 109775 80 0.3571 2.1411 94362 100 0.4464 1.9619 86464 120 0.5357 1.8235 80366 140 0.625 1.6081 70873 160 0.7143 1.5038 66275 180 0.8036 1.3957 61510 200 0.8929 1.1541 50861 220 0.9821 1.0089 44465 224 1 1 44072 240 1.0714 0.8524 37568 260 1.1607 0.8184 36068 280 1.25 0.7965 35103 300 1.3393 0.793 34948 320 1.4286 0.7908 34853 340 1.5179 0.7905 34841 360 1.6071 0.7905 34841 380 1.6964 0.7905 34841 400 1.7857 0.7873 34698
从上面的数据中可以看到当前db_cache_size为224M其物理读为44072增加cache size大小会减少物理读当cache size到340M时物理读的减少不再明显因此db_cache_size大小为340M在目前情况下是一个合适的值。 由于这里用的是自动共享内存管理方式应该增加sga_target这样db_cache_size大小会相应增加要增加sga_target要先增加sga_max_size。