使用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) - 性能管理的更多相关文章

  1. 机器学习实战 - 读书笔记(13) - 利用PCA来简化数据

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第13章 - 利用PCA来简化数据. 这里介绍,机器学习中的降维技术,可简化样品数据. ...

  2. 强化学习读书笔记 - 13 - 策略梯度方法(Policy Gradient Methods)

    强化学习读书笔记 - 13 - 策略梯度方法(Policy Gradient Methods) 学习笔记: Reinforcement Learning: An Introduction, Richa ...

  3. 《Android开发艺术探索》读书笔记 (13) 第13章 综合技术、第14章 JNI和NDK编程、第15章 Android性能优化

    第13章 综合技术 13.1 使用CrashHandler来获取应用的Crash信息 (1)应用发生Crash在所难免,但是如何采集crash信息以供后续开发处理这类问题呢?利用Thread类的set ...

  4. 『TCP/IP详解——卷一:协议』读书笔记——13

    2013-08-24 16:03:39 4.6 ARP代理 ARP代理(Proxy ARP):如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求.这样可 ...

  5. OCA读书笔记(12) - 数据库维护

    查询优化器统计信息 搜集统计信息: 不是实时的: SQL> conn /as sysdbaConnected.SQL> grant select on dba_objects to sco ...

  6. OCP读书笔记(13) - 管理内存

    SGA 1. 什么是LRULRU表示Least Recently Used,也就是指最近最少使用的buffer header链表LRU链表串联起来的buffer header都指向可用数据块 2. 什 ...

  7. OCA读书笔记(17) - 移动数据

    Sql*load 1. sql*loader的文件有哪些? 日志文件:概述了作业的成功与失败以及所有相关错误的细节 错误文件(bad file):从输入文件中抽取的行可能会被sqlldr丢弃(原因可能 ...

  8. RH033读书笔记(13)-Lab 14 Network Clients

    Goal: Practice using a variety of tools to transfer files between your system and a remote system. S ...

  9. 《http权威指南》读书笔记13

    概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...

随机推荐

  1. VIM IDE

    打造VIM IDE(针对C语言开发者)   ================================使用vim打造IDE, 针对C语言开发者建议使用gvim================== ...

  2. delphi高手突破学习笔记之面向对象类和对象的本质(有汇编解释 good)

    知识点1:堆和栈 每个应用程序可以获得的内存空间分为两种:堆(heap)和栈(stack). 堆又称为“自由存储区”,其中的内存空间的分配与释放是必须由程序员来控制的.例如,用GetMem函数获取了一 ...

  3. linux命令:find

    先上例子: find ./*_src -type f | xargs grep -ils "date" 在指定的那些文件夹下面,递归寻找包含“date” 字符串的普通文件. fin ...

  4. 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序

    原文 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序 Jim ...

  5. 程序员必须知道的几个Git代码托管平台(转)

    上一篇博客中2015继续任性——不会Git命令,照样玩转Git我们简单的介绍了在VS2013中使用Git,和GitHub客户端的使用.那么使用Git到底有什么好处呢?最为明显的是支持Git代码托管的平 ...

  6. Fedora 17 下安装codeblocks

    Fedora 17 下安装codeblocks:        1.直接从yum源安装:        sudo yum install codeblocks        2.源码安装        ...

  7. boost参考博客

    http://blog.csdn.net/caimouse/article/category/1339053

  8. MFC超链接静态类的使用

    源代码:http://download.csdn.net/detail/nuptboyzhb/4197151 CHyperLink类,是由CStatic类派生出来,重载了CStatic类的如下函数: ...

  9. 【图论】2-sat总结

    2-sat总结 2-sat问题,一般表现的形式为.每一个点有两种方式a,b,要么选a,要么选b.而且点点之间有一些约束关系.比如:u和v至少一个选a.那么这就是一个表达式.把a当成真,b当成假,那就是 ...

  10. php等号(==)与全等(===)

    <?php require_once 'Person.php'; header("content-type:text/html;charset=utf-8"); $perso ...