OCA读书笔记(13) - 性能管理
使用EM监控性能
使用自动内存管理(AMM)
使用Memory Advisor分配内存
查看性能相关动态视图
诊断无效的和不可用的对象
创建问题SQL
sqlplus / as sysdba
conn scott/tiger;
declare
i number;
j number;
begin
i := 0;
loop
j := sqrt(i);
i := i + 1;
end loop;
end;
/
查找问题SQL
[root@nylg ~]# top --查看pid
su - oracle
sqlplus / as sysdba;
set long 1000;
select sql_fulltext from v$sqlarea where sql_id=(select sql_id from v$session where paddr=(select addr
from v$process where spid=&pid))
AMM(自动内存管理,针对SGA和PGA)
指定总的内存,系统自动分配SGA和PGA。
show parameter memory_max_target
show parameter memory_target
alter system set memory_target=1024M;
alter system set memory_max_target=1024M scope=spfile;
startup force;
ASMM(自动共享内存管理)
指定SGA,系统自动分配SharedPool, BufferCache, LargePool, JavaPool, LargePool等值。
select component, current_size from v$memory_dynamic_components;
查看性能相关动态视图
select table_name from dict where table_name like '%SYSSTAT%';
select table_name from dict where table_name like '%SESSTAT%';
select table_name from dict where table_name like '%SERVICE_STAT%';
select table_name from dict where table_name like '%SYSTEM%';
select table_name from dict where table_name like '%SESSION%';
select table_name from dict where table_name like '%SERVICE%';
无效和不可用对象
索引和试图引用的对象不存在导致索引和试图无效或不可用
无效对象:
sqlplus / as sysdba;
grant create view to scott;
conn scott/tiger;
create table e as select * from emp;
create view v1 as select * from e;
conn / as sysdba;
select owner,name,type,referenced_owner,referenced_name,referenced_type from dba_dependencies where owner='SCOTT';
alter table e move;
select owner, object_name, object_type from dba_objects where status='INVALID';
运行下面的命令尝试编译所有无效对象。
@?/rdbms/admin/utlrp
alter view v1 compile;
不可用索引
注意:如果希望数据库实现旧版本中无用索引导致返回错误消息的功能,那么可以执行命令:
alter system set skip_unusable_indexes=false;
select owner,index_name, status from dba_indexes where status='UNUSABLE';
alter index i1 rebuid;
索引条目
键列值 -- rowid
select ename, empno, rowid from emp;
select empno, ename, dbms_rowid.rowid_object(rowid) as "Object#", dbms_rowid.rowid_relative_fno(rowid) as "File#", dbms_rowid.rowid_block_number(rowid) as "Block#", dbms_rowid.rowid_row_number(rowid) as "Row#" from emp;
conn / as sysdba;
select owner, object_type,object_name from dba_objects where object_id='<Object#>';
select file_name, tablespace_name from dba_data_files where file_id=4;
实验:
1.创建实验表:
conn scott/tiger
create table valid_t as select * from all_users;
2.创建一些依赖于此表的对象:
create index valid_i on valid_t(username);
create view valid_v as select * from valid_t;
create procedure valid_p as
begin
insert into valid_t values('name',99,sysdate);
commit;
end;
/
3.确认对象的状态:
col OBJECT_NAME for a11
select object_name,object_type,status from user_objects where object_name like 'VALID%';
select status from user_indexes where index_name = 'VALID_I';
其状态是VALID
4.针对表执行将会破坏对象的DDL命令:
alter table valid_t drop column created;
alter table valid_t move;
5.
select object_name,object_type,status from user_objects where object_name like 'VALID%';
select status from user_indexes where index_name = 'VALID_I';
6.使用无效的对象:
execute valid_p;
select * from valid_v;
7.尝试更正错误:
alter view valid_v compile;
alter procedure valid_p compile;
alter index valid_i rebuild online nologging;
由于表发生了更改,编译将会失效
8.将列再添回表中,更正错误:
alter table valid_t add(created date);
alter view valid_v compile;
9.
execute valid_p;
select * from valid_v;
执行成功
10.重新运行查询,所有的对象均以恢复正常,原因是尝试时将强制执行自动重新编译
select object_name,object_type,status from user_objects where object_name like 'VALID%';
select status from user_indexes where index_name = 'VALID_I';
11.实验结束,清理环境
drop table valid_t purge;
drop procedure valid_p;
drop view valid_v;
OCA读书笔记(13) - 性能管理的更多相关文章
- 机器学习实战 - 读书笔记(13) - 利用PCA来简化数据
前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第13章 - 利用PCA来简化数据. 这里介绍,机器学习中的降维技术,可简化样品数据. ...
- 强化学习读书笔记 - 13 - 策略梯度方法(Policy Gradient Methods)
强化学习读书笔记 - 13 - 策略梯度方法(Policy Gradient Methods) 学习笔记: Reinforcement Learning: An Introduction, Richa ...
- 《Android开发艺术探索》读书笔记 (13) 第13章 综合技术、第14章 JNI和NDK编程、第15章 Android性能优化
第13章 综合技术 13.1 使用CrashHandler来获取应用的Crash信息 (1)应用发生Crash在所难免,但是如何采集crash信息以供后续开发处理这类问题呢?利用Thread类的set ...
- 『TCP/IP详解——卷一:协议』读书笔记——13
2013-08-24 16:03:39 4.6 ARP代理 ARP代理(Proxy ARP):如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求.这样可 ...
- OCA读书笔记(12) - 数据库维护
查询优化器统计信息 搜集统计信息: 不是实时的: SQL> conn /as sysdbaConnected.SQL> grant select on dba_objects to sco ...
- OCP读书笔记(13) - 管理内存
SGA 1. 什么是LRULRU表示Least Recently Used,也就是指最近最少使用的buffer header链表LRU链表串联起来的buffer header都指向可用数据块 2. 什 ...
- OCA读书笔记(17) - 移动数据
Sql*load 1. sql*loader的文件有哪些? 日志文件:概述了作业的成功与失败以及所有相关错误的细节 错误文件(bad file):从输入文件中抽取的行可能会被sqlldr丢弃(原因可能 ...
- RH033读书笔记(13)-Lab 14 Network Clients
Goal: Practice using a variety of tools to transfer files between your system and a remote system. S ...
- 《http权威指南》读书笔记13
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
随机推荐
- 通过cmd命令安装、卸载、启动和停止Windows Service(InstallUtil.exe)-大壮他哥
步骤: 1.运行--〉cmd:打开cmd命令框 2.在命令行里定位到InstallUtil.exe所在的位置 InstallUtil.exe 默认的安装位置是在C:/Windows/Microsoft ...
- jquery实现ajax提交form表单的方法总结
本篇文章主要是对jquery实现ajax提交form表单的方法进行了总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 方法一: function AddHandlingFeeToRefund( ...
- VC 为静态控件添加事件
操作系统:Windows 7软件环境:Visual C++ 2008 SP1本次目的:为静态控件添加事件,如:STATIC.Picture Control等等 有时候我们找到一个图片,为对话框背景添加 ...
- Python学习笔记 — 函数
函数是对程序逻辑进行结构化或过程化的一种编程方法.函数具有两个方面的意义:1)将代码分块,易于管理和阅读:2)最大化代码复用和最小化代码冗余,节省空间,有助于保持一致性. 1. 函数定义 Python ...
- Windows Azure入门教学系列 (二):部署第一个Web Role程序
本文是Windows Azure入门教学的第二篇文章. 在第一篇教学中,我们已经创建了第一个Web Role程序.在这篇教学中,我们将学习如何把该Web Role程序部署到云端. 注意:您需要购买Wi ...
- Windows下与Linux下编写socket程序的区别 《转载》
原文网址:http://blog.chinaunix.net/uid-2270658-id-308160.html [[Windows]] [Windows: 头文件的区别] #include< ...
- 使用commons-daemon启动、关闭java程序
系统环境: CentOS 7 X64 JDK1.8 一: 安装jsvc 下载 commons-daemon的源代码包 http://apache.fayea.com//commons/daemon/s ...
- HDU 1269 迷宫城堡(强连通)
HDU 1269 迷宫城堡 pid=1269" target="_blank" style="">题目链接 题意:中文题 思路:强连通模板题 代 ...
- 单片机C语言实现的采用DS18B20的温度检测装置
这几天老师布置了一个课程设计题目:采用51单片机控制的DS18B20温度检测系统.大概花了我一个礼拜的时间,幸好我的C语言学得还可以,最后还是让我搞出来了,真是高兴,我是采用STC-52单片机和DS1 ...
- 用VC实现竖写汉字的方法
中国人自古就有自右至左.从上到下书写汉字的习惯.而当我们在自己所编写的应用程序中使用输出函数输出的总是自左至右的横排文字.有没有可能在我们的应用程序中实现竖写汉字的效果呢?笔者偶然发现了一种利用VC实 ...