Oracle调优-常用表KEEP到内存中
数据迁移后性能受到影响,需要将老数据库中keep到内存中的表在新库中keep到内存中,使用如下方法。
新库设置db_keep_cache_size为适当值,这个值的大小不能小于需要keep的表的大小。
查看老库中需要keep的表信息:
select s.owner,
s.segment_name,
s.partition_name,
s.bytes / 1024 / 1024 as "size(m)"
from dba_segments s
where owner = 'XXX'
and segment_name in
(select table_name from dba_tables where owner = 'XXX' and buffer_pool='KEEP')
order by 4 desc
查询老库中需要keep表总大小:
select sum(s.bytes / 1024 / 1024 / 1024) as "total keep size(G)"
from dba_segments s
where segment_name in
(select table_name from dba_tables where owner = 'XXX' and buffer_pool='KEEP')
生成keep脚本:
select 'alter table XXX.'||s.segment_name||' storage(buffer_pool keep);' as "脚本"
from dba_segments s
where owner = 'XXX'
and segment_name in
(select table_name from dba_tables where owner = 'XXX' and buffer_pool='KEEP')
keep表到内存中:
select 'alter table XXX.'||s.segment_name||' cache;' as "脚本2"
from dba_segments s
where owner = 'XXX'
and segment_name in
(select table_name from dba_tables where owner = 'XXX' and buffer_pool='KEEP')
上两个脚本整合:
select 'alter table XXX.'||s.segment_name||' storage(buffer_pool keep) cache;' as "脚本"
from dba_segments s
where owner = 'XXX'
and segment_name in
(select table_name from dba_tables where owner = 'XXX' and buffer_pool='KEEP')
上述三个脚本输出结果放在plsql中执行即可。
附录:与cache到内存相关的命令
--表缓存
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;
--查询当前用户下表的情况
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;
--取消表缓存
alter table XXX storage(buffer_pool default);
ps:
查看keep空间的剩余大小:
select p.name,a.cnum_repl "total buffers",a.anum_repl "free buffers"
from x$kcbwds a, v$buffer_pool p
where a.set_id=p.LO_SETID and p.name='KEEP';
查看keep空间的大小:
select component,current_size from v$sga_dynamic_components
where component='KEEP buffer cache';
Oracle调优-常用表KEEP到内存中的更多相关文章
- Oracle调优总结(经典实践 重要)
转载:http://langgufu.iteye.com/blog/1974211 Problem Description:1.每个表的结构及主键索引情况2.每个表的count(*)记录是多少3.对于 ...
- Oracle调优之buffer pool相关
一个oracle block与data buffer中的一个buffer对应.用户进程(server process)负责读取磁盘上的block到data buffer cache中,DEWn进程负责 ...
- Oracle调优总结
Oracle调优总结(经典实践 重要) https://blog.csdn.net/dtjiawenwang88/article/details/74892245 https://www.cnblog ...
- oracle中如何将表缓存到内存中
oracle快速将表缓存到内存中,使得访问速度加快. 共有2种方法: 1)alter table fisher cache; 2)alter table fisher storage(buffer ...
- Oracle SQL调优之表设计
在看<收获,不止sql优化>一书,并做了笔记,本博客介绍一下一些和调优相关的表比如分区表.临时表.索引组织表.簇表以及表压缩技术 分区表使用与查询频繁而更新数据不频繁的情况,不过要记得加全 ...
- MySql(十一):MySQL性能调优——常用存储引擎优化
一.前言 MySQL 提供的非常丰富的存储引擎种类供大家选择,有多种选择固然是好事,但是需要我们理解掌握的知识也会增加很多.本章将介绍最为常用的两种存储引擎进行针对性的优化建议. 二.MyISAM存储 ...
- Oracle调优之看懂Oracle执行计划
@ 目录 1.文章写作前言简介 2.什么是执行计划? 3.怎么查看执行计划? 4.查看真实执行计划 5.看懂Oracle执行计划 5.1 查看explain 5.2 explain执行顺序 5.3 访 ...
- JVM调优常用参数和注意点备忘录
本文主要是工作过程中总结的一些jvm调优的参数和注意的地方,作为一个备忘录,先占个坑,有时间在来细化具体的实例. gc日志是覆盖的方式如果文件名字固定会导致上一次被覆盖可以采用这个-Xloggc:ba ...
- JVM监控和调优常用命令工具总结
JVM监控和调优 在Java应用和服务出现莫名的卡顿.CPU飙升等问题时总是要分析一下对应进程的JVM状态以定位问题和解决问题并作出相应的优化,在这过程中Java自带的一些状态监控命令和图形化工具就非 ...
随机推荐
- BZOJ - 3489 KD树 范围计数 空间思维转换
题意:给定数列\(a[1...n]\),\(Q\)次查询\([L,R]\)中只出现一次的最大值 这道题的做法比较劲.. 对每个元素构造三维空间的点\((i,pre[i],next[i])\),查询\( ...
- UESTC - 1652 递推方程
方程很简单,每一公里往上推就行 WA了2发,忘了单通道时的特判,还有n m傻傻分不清,忘了fixed什么的我好弱啊QAQ.. #include<bits/stdc++.h> #define ...
- jstl 遍历数据
1 导入 jstl 的 jar 包 2. 页面中添加 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/ ...
- 【研究】Struts2-052漏洞
漏洞描述: CVE-2017-9805 2017年9月5日,Apache Struts官方发布最新的安全公告称,Apache Struts 2.5.x的REST插件存在远程代码执行高危漏洞,漏洞编号为 ...
- mutillidae之Insert型注入
A1:Insert型注入 1.输入内容,确定内容输出位置,确定插入字段顺序 输入test')-- -,页面报错,可知test并非最后一个字段,继续尝试test','123'),页面返回正常,确定tes ...
- 协程:gevent模块,遇到i/o自动切换任务 038
协程 : gevent模块,遇到io自动切换任务 from gevent import monkey;monkey.patch_all() # 写在最上面 这样后面的所有阻塞就全部能够识别了 impo ...
- PIE SDK聚类
1.算法功能简介 聚类处理时运用形态学算子将临近的类似分类区域聚类并合并. PIE SDK支持算法功能的执行,下面对聚类算法功能进行介绍. 2.算法功能实现说明 2.1. 实现步骤 第一步 算法参数设 ...
- python_学生信息管理实例
"""提示:代码中的内容均被注释,请参考,切勿照搬""" """注意:代码切勿照搬,错误请留言指出" ...
- android中的Touch研究
android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件,有必要对它进行深入的了解. 一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN-& ...
- Coursera 机器学习 第6章(上) Advice for Applying Machine Learning 学习笔记
这章的内容对于设计分析假设性能有很大的帮助,如果运用的好,将会节省实验者大量时间. Machine Learning System Design6.1 Evaluating a Learning Al ...