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的很多概念,不仅告诉你怎么做 ...
随机推荐
- PHP - 接口&抽象类
什么时候使用抽象类什么时候使用接口? .如果要创建一个模型,这个模型将由一些紧密相关的对象采用,就可以使用抽象类.如果要创建将由一些不相关对象采用的功能,就使用接口. .如果必须从多个来源继承行为,就 ...
- github上的QT源码,必要的时候还是应该看一下,仅凭猜测很容易出错
QCoreApplication::processEvents 他处理的时候拿的是current不是qAppqApp的话,才是和主线程密切相关的 一直觉得QT源码复杂,有点怕,所以没怎么看 我也看不懂 ...
- ajax动态加载的图标
http://www.ajaxload.info/ 这个网站可以动态生成ajax加载样式的小图片,git格式,挺不错推荐给大家
- 一个大学生屌丝心中的seo梦
最 近这几天,我利用空闲时间去网上看到很多关于seoer的生存现状,尤为的感伤.因为自已也是一位爱好seo和利用闲于时间来学习seo的一个大学生屌 丝,在学习的过程中,有辛酸和泪水.但也有快乐,感觉一 ...
- IOS开发之UIView的基本使用
一.视图 1. iphone手机上的窗口就是UIWindow类的一个实例(1个手机应用只有一个UIWindow). 2.UIView类用于实现视图. UIView提供了方法来添加和删除子视图.一个视图 ...
- google2013校园招聘笔试题(全国)
google2013校园招聘笔试题 1. 单项选择题1.1如果把传输速率定义为单位时间内传送的信息量(以字节计算)多少.关于一下几种典型的数据传输速率:1.使用USB2.0闪存盘,往USB闪存盘上拷贝 ...
- Android 带你从源码的角度解析Scroller的滚动实现原理
转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17483273),请尊重他人的辛勤劳动成果,谢谢! 今天给大 ...
- 使用hadoop ecipse插件须要注意的问题
1.关于run on hadoop的问题: 在未用hadoop eclipse插件前,我以为通过hadoop eclipse 插件不但能够管理hdfs,还能够自己主动打包程序.并帮我自己主动设置Con ...
- JS - 6款鼠标悬停效果
下载地址:http://www.lanrentuku.com/js/tupian-1093.html
- java输出空心菱形
package com.zsh; import java.util.Scanner; public class Test08 { public static void main(String[] ar ...