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的很多概念,不仅告诉你怎么做 ...
随机推荐
- iOS 编程之 使用 Xcode6配置.pch文件
刚上手 Xcode6 的人,总会发现之前在 6 之前常常会在“利用名-Prefix.pch”这个文件中来配置我们全局要用到的头文件,但是 xcode6 没有了,人家说,这类东西有时候也会出现1些稀里糊 ...
- 使用BAT方法结束进程
@echo off taskkill /f /im GAM.exe taskkill /f /im GCL10.exe http://www.cnblogs.com/FKdelphi/p/501540 ...
- android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 3
今天在写一个小项目的数据库部分的功能时,出现了一个这样的问题:java.lang.RuntimeException: Failure delivering result ResultIn ...
- MPMoviePlayerController导致statusBar消失,导致内存泄露leak
1.MPMoviePlayerController使statusBar消失 同事写项目时,运行程序总导致statusBar状态条消失,然后就是界面会上移20个像素,导致最下面空白界面,找原因一直不知道 ...
- poj 3466 A Simple Problem with Integers
题目链接:http://poj.org/problem?id=3468 http://poj.org/problem?id=3468 http://poj.org/problem?id=3468 思路 ...
- Qt for Android 部署流程分析
原地址:http://blog.csdn.net/foruok/article/details/17796017 今天为了测试使用 Qt Creator 3.0.0 开发的纯 C 工程,利用了 Win ...
- 如何获得getElementById的length这个数值?
a=document.getElementById("a").innerHTML.length;我觉得你应该这么写 如果是文本框的话document.getElementById( ...
- ajax表单提交全路径
//ajax提交form表单的方式 $(document).ready(function() { $('#shopping-submit').click(function() { alert(&quo ...
- perl lwp编码
$var= $response->content; $var= $response->decoded_content;
- 【cocos2d-js公文】十七、事件分发机制
简单介绍 游戏开发中一个非常重要的功能就是交互,假设没有与用户的交互.那么游戏将变成动画,而处理用户交互就须要使用事件监听器了. 总概: 事件监听器(cc.EventListener) 封装用户的事件 ...