/5自动性能统计
5.1 Data Gathering概述
三种方式
(1)AWR通过
V$SESSTAT和V$SYSSTAT;示例关闭时,保存快照
(2)A metric
(3)ASH
工具:baseline
内容:数据库统计:(1)等待事件,IO等(2)时间统计模型,等待时间(3)V$ACTIVE_SESSION_HISTORY(4)V$SYSSTAT和V$SESSTAT
操作系统统计:(1)
CPU统计(2)
虚拟内存统计(3)
磁盘I / O统计(4)
网络统计
Interpreting统计:(1)
Hit ratios
(2)
Wait events with timed statistics
(3)
Comparing
(4)其他
5.2 AWR概述
5.2.1
5.2.3自适应阈值:
根据统计信息重新设置警告线?
类型:百分比最大值、显著性水平
5.2.4空间消耗的因素(1)活动会话数(2)Snapshot interval(3)Historical data retention period
作用:ADDM;SQL tuning advisor;undo advisor;段advisor
根据工作收益来调
5.3 管理AWR
5.3.3 Baseline Templates基线模板,以便将来使用基线模板捕获指定的时间段
/7 Configuring and Using Memory
7.6管理Server and Client Result Caches
特点:(1)that stores the result of a
database query or query block
for reuse
(2)The cached rows are shared
across statements and sessions
unless they become stale.
位置:shared pool.
包括:SQL queries, and a PL/SQL function result cache
参数:RESULT_CACHE_MAX_SIZE=0时,禁用
RESULT_CACHE_MAX_RESULT=5%,单个结果的最大缓存
RESULT_CACHE_REMOTE_EXPIRATION=0,存储到期时间
支持flashback queries
RESULT_CACHE
7.6.4 Result Cache的预配
无法cache的:
(1)SYS或SYSTEM模式中的临时表和表
(2)序列CURRVAL和NEXTVAL伪列
(3)SQL函数CURRENT_DATE,CURRENT_TIMESTAMP,LOCAL_TIMESTAMP,USERENV/SYS_CONTEXT(与非恒定的变量), ,SYS_GUID,SYSDATE和SYS_TIMESTAMP
/8 I/O Configuration and Design
8.1 About I/O:
如果应用程序不是I/O绑定(例如,当CPU是限制因素)时,调整I/O不能帮助性能。
8.3 数据库内的I/O校准
前提:(1)用户必须被授予SYSDBA权限(2)timed_statistics 必须设置为 TRUE(3)必须启用异步I / O
/ 9管理操作系统资源
9.1 Operating System Performance Issues
9.1.1 Using Operating System Caches
IO:
(1)By default, all database I/O goes through the file system cache.
(2)异步IO:提交和处理同时进行。直接IO???
(3)参数:FILESYSTEMIO_OPTIONS
ASYNCH: 在文件系统文件上启用异步I / O,这对传输没有时间要求。
DIRECTIO: 在文件系统文件上启用直接I / O,绕过缓冲区缓存。
SETALL: 启用文件系统文件上的异步和直接I / O。
NONE: 禁用文件系统文件上的异步和直接I / O。
/11 查询优化器
11.1查询优化器概述
优化器的操作:
有四种:full table scans , index scans, nested loops, and hash joins .
步骤:1、根据访问路径和计划生成SQL语句的潜在计划
2、根据statistics(表、索引、数据结构、存储特征)估计成本(IO,CPU、内存)
3、选最低成本
组件:
1、查询转换器的转换技术:
view merge:将view where 查询转化为table where and查询
predicade pushing:
将条件view查询转化为union table查询
subquery unnesting:将子查询转化为连接查询
物化视图
查询重写
:ENABLE QUERY REWRITE
2、估计
选择性:与谓词有关
基数:
成本:IO,CPU,内存
3、计划生成
???
绑定变量peeking
自适应光标???
V$SQL 显示游标是绑定敏感还是绑定感知
V$SQL_CS_HISTOGRAM 显示三桶执行历史记录直方图中的执行次数分布
V$SQL_CS_SELECTIVITY 显示了对于包含绑定变量的每个谓词,如果选择性用于检查游标共享,则存储的选择性范围
V$SQL_CS_STATISTICS 总结优化器用于确定是否标记游标绑定感知的信息。
11.2优化器访问路径概述
全表FULL(table alias)、
rowid:
index:
评估block的IO而不是行的IO
cluster、
hash、
示例表扫描
11.3优化器连接概述
特征:子句中多一个from
11.4阅读和理解执行计划
执行计划包括:访问路径、表连接顺序、表连接方法
EXPLAIN PLAN FOR select * from…… 区别于执行计划??
谓词
11.5控制优化器行为
OPTIMIZER_MODE
从数据字典里的查优化统计信息(DD里的OS)
/12使用EXPLAIN PLAN
1、row source tree是execution plan的核心:排序、访问方法、连接方法
2、优化
3、分区
4、并行
/13 Managing Optimizer Statistics
13.3 Gathering Statistics Manually
功能包:DBMS_stats.
因素:
(1)using sample
;EXECUTE DBMS_STATS.GATHER_SCHEMA_STATS('OE',DBMS_STATS.AUTO_SAMPLE_SIZE);
(2)并行
;
(3)分区
;粒度GRANULARITY;INCREMENTAL=false(默认)全局扫描
(4)列统计和histogram;
(5)确定旧统计
,
(6)用户定义统计
13.5 Managing Statistics
13.5.1 Pending Statistics
(1)保存在data dictionary中
(2)从11.2开始,当gathering statistics时,你可以a自动发布,b也可以saved as pending验证后发布
(3)Extended Statistics包括
Column group statistics
和Expression statistics
(4)如果希望优化器使用newly collected pending statistics,请将初始化参数设置OPTIMIZER_USE_PENDING_STATISTICS=TRUE
/15 Using SQL Plan Management(自动维护任务?)
15.2 Managing SQL Plan Baselines
15.2.1 自动捕获计划
15.2.2 从现有计划创建基准:手动加载
从SQL调优集和AWR快照加载计划
从共享SQL区域加载计划
15.3 使用带有SQL Tuning Advisor的SQL Plan Baselines
——>
先比较,如果发现比原来的好,则accept a SQL profile
——>adds the tuned plan to the corresponding SQL plan baseline
15.4 使用Fixed SQL Plan Baselines
15.6 SQL管理基线(SMB)
概述:存储于SYSAUX中,是DD的一部分,
存储内容:statement logs, plan histories, SQL plan baselines, and SQL profiles.超过时会写入告警日志
空间:默认不超过sysaux的10%,可以在1%-50%之间。
命令:
DBMS_SPM.CONFIGURE( 'space_budget_percent',30);
保存期限:5-523周。命令:DBMS_SPM.CONFIGURE('plan_retention_weeks',105);
15.8 Migrating Stored Outlines to SQL Plan Baselines
定义:a set of hints for a SQL statement;这个hint指示
optimizer选择具体的计划;保证
plan stability的传统技术
/16 SQL Tuning Overview
16.4 Automatic SQL Tuning功能
SQL Tuning Advisor:优化已被标识为高负载SQL语句的SQL语句。
SQL Tuning Sets:包括一组SQL语句及其关联的执行上下文和基本执行统计信息
SQL Access Advisor:为workload提供materialized views, materialized view logs, and indexes集
16.6 构建SQL测试用例
收集出问题时,其发生环境的信息的困难和耗时的过程(就是把sql出问题时的环境信息收集一下,一起打包给help)
SQL Test Case Builder测试用例生成器收集的信息:
(1)被execute query;
(2)table和index defined;
没有actual data
(3)
PL/SQL functions,
(4)procedures, and packages,
(5)
optimizer statistics,
(6)and i
nitialization parameter settings.
访问:
1、EM:Support Workbench——单击事件——分析和解决——生成转储和测试用例——go to task
2、SQL:DBMS_SQLDIAG
/17 Automatic SQL Tuning
17.2 管理自动SQL调优顾问
步骤:
(1)识别SQL candidates,根据统计信息生成SQL列表
(2)调用SQL advisor
(3)测试SQL profile,如果接受则:ACCEPT_SQL_PROFILES=true
17.3 SQL Tuning的Reactively调整
输入源:ADDM,AWR,share SQL area,SQL调优集。
选项:
Limited:只生成结构和路径,不生成profile ;
Comprehensive:生成结构和路径,生成profile,还可以指定时间限制
输出:
EM
DBMS_SQLTUNE.SQL Tuning Advisor
17.4 Managing SQL Tuning Sets--不懂
A database object包括:(文本,执行内容,执行频率)
(1)一组SQL语句;
(2)关联的执行文本:user schema, application module name and action, list of bind values, and the cursor compilation environment
(3)相关的统计信息????
17.5 管理SQL Profiles (recommend随着advisor自动的??)
创建:accept a profile——永久存储在数据字典——优化器使用profile和环境参数来构建一个plan
使用:获得ADMINISTER SQL MANAGEMENT OBJECT权限
接受profile:DBMS_SQLTUNE.ACCEPT_SQL_PROFILE
更改:ALTER_SQL_PROFILE
删除:
BEGIN
DBMS_SQLTUNE.DROP_SQL_PROFILE(name =>'my_sql_profile');end;/
/18 SQL Access Advisor
18.1 概述
功能:推荐适当的物化视图集,物化视图日志,
分区和索引来帮助您实现性能目标。
步骤:(1)DBMS_ADVISOR.CREATE_TASK
(2)
定义工作负载,DBMS_SQLTUNE+ DBMS_ADVISOR.ADD_STS_REF。
前两步执行完才能出现想要的结果
(3)生成建议DBMS_ADVISOR.EXECUTE_TASK
(4)DBMS_ADVISOR.GET_TASK_SCRIPT
存储:resides in the Advisor repository, which is a part of the database dictionary.
建立数据库初期,
模拟制定一个假想工作量,来设置baseline,暂时用不到AWR
18.2 Using SQL Access Advisor
创建任务:DBMS_ADVISOR.CREATE_TASK(
创建模板设置末班参数:
SQL Access Advisor Workloads
DBMS_ADVISOR.QUICK_TUNE( ) 该过程创建一个任务和工作负载并执行此任务。
18.2.5 Working with Recommendations
18.2.5.11 Script Includes Partitioning Recommendations 需要很长时间