PowerPoint Presentation

Similar documents
Oracle 4

11.2 overview

1 o o o CPU o o o o o SQL Server 2005 o CPU o o o o o SQL Server o Microsoft SQL Server 2005

ebook 96-16

支付宝2011年 IT资产与费用预算

回滚段探究

PowerPoint Presentation

季刊9web.indd

System Global Area, Oracle Background process Oracle, Server Process user process, user process : SQL*PLUS SYSTEM SQL> select name from v$datafile; NA

2 2 3 DLight CPU I/O DLight Oracle Solaris (DTrace) C/C++ Solaris DLight DTrace DLight DLight DLight C C++ Fortran CPU I/O DLight AM

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

Microsoft Word - ORA doc

目錄... ivv...vii Chapter DETECT

目錄

PowerPoint 演示文稿

學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘

ebook10-5

Oracle高级复制冲突解决机制的研究

DB2 (join) SQL DB2 11 SQL DB2 SQL 9.1 DB2 DB2 ( ) SQL ( ) DB2 SQL DB2 DB2 SQL DB2 DB2 SQL DB2 ( DB2 ) DB2 DB2 DB2 SQL DB2 (1) SQL (2) S

Oracle Database 10g: SQL (OCE) 的第一堂課

RAID RAID 0 RAID 1 RAID 5 RAID * ( -1)* ( /2)* No Yes Yes Yes A. B. BIOS SATA C. RAID BIOS RAID ( ) D. SATA RAID/AHCI ( ) SATA M.2 SSD ( )

PowerPoint 演示文稿

untitled

A Preliminary Implementation of Linux Kernel Virus and Process Hiding

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

Value Chain ~ (E-Business RD / Pre-Sales / Consultant) APS, Advanc

epub83-1

untitled

sql> startup mount 改变数据库的归档模式 sql> alter database archivelog # 打开数据库 sql> alter database open 禁止归档模式 sql> shutdown immediate sql>startup mount sql> al

使用SQL Developer

starter_pdfmerge

SA-DK2-U3Rユーザーズマニュアル

SQL Server SQL Server SQL Mail Windows NT

Chapter 2

ebook140-9

P4i45GL_GV-R50-CN.p65

untitled

V8_BI.PPT [只读]

oracle-Ess-05.pdf

NTSE: Non-Transactional Storage Engine MySQL InnoDB 10 InnoDB +Memcached 5 50% / K C++

基于UML建模的管理管理信息系统项目案例导航——VB篇

(Electronic Data Interchange) (Executive Information System) (Economic Order Quantity) (Enterprise Resource Planning) (Flexible Manufacture System) (F

ebook 132-6

RunPC2_.doc

Slide 1

untitled

三. 发现表被删除, 开始着手解决 1. 该表所在表空间离线 ( 确保删除表所在位置不会被重写 ) SQL> alter tablespace raw_odu offline; Tablespace altered. 2. 通过 logmnr, 找出被删除的数据 data _object _id 1

2/80 2

Simulator By SunLingxi 2003

IBM Rational ClearQuest Client for Eclipse 1/ IBM Rational ClearQuest Client for Ecl

13 A DSS B DSS C DSS D DSS A. B. C. CPU D. 15 A B Cache C Cache D L0 L1 L2 Cache 16 SMP A B. C D 17 A B. C D A B - C - D

豐佳燕.PDF

(Guangzhou) AIT Co, Ltd V 110V [ ]! 2

Serial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10

Oracle高级复制配置手册_业务广告_.doc

Bus Hound 5

A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

R D B M S O R D B M S R D B M S / O R D B M S R D B M S O R D B M S 4 O R D B M S R D B M 3. ORACLE Server O R A C L E U N I X Windows NT w w

Microsoft PowerPoint - ch6 [相容模式]

Improved Preimage Attacks on AES-like Hash Functions: Applications to Whirlpool and Grøstl

Microsoft Word - HSK使用手册.doc

Microsoft PowerPoint - Aqua-Sim.pptx

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

Dell EMC Data Domain DDOS 5.5 Data Domain Data Domain Data Domain : Data Domain Boost (DDBoost) Dell EMC DDBoost Data Domain DDBoost Source De-Dup Bac

厦 门 大 学 学 位 论 文 原 创 性 声 明 本 人 呈 交 的 学 位 论 文 是 本 人 在 导 师 指 导 下, 独 立 完 成 的 研 究 成 果 本 人 在 论 文 写 作 中 参 考 其 他 个 人 或 集 体 已 经 发 表 的 研 究 成 果, 均 在 文 中 以 适 当 方

coverage2.ppt

untitled

1-1 database columnrow record field 不 DBMS Access Paradox SQL Server Linux MySQL Oracle IBM Informix IBM DB2 Sybase 1-2

RUN_PC連載_12_.doc

提纲 1 2 OS Examples for 3

gebook84-1

Oracle9i 的查询优化

OOAD PowerDesigner OOAD Applying PowerDesigner CASE Tool in OOAD PowerDesigner CASE Tool PowerDesigner PowerDesigner CASE To

习题1

ch_code_infoaccess

Progress Report of BESIII Slow Control Software Development

ebook46-23

untitled

Business Objects 5.1 Windows BusinessObjects 1

K7VT2_QIG_v3

Chapter 24 DC Battery Sizing

SAP HANA 最 简 单 的 理 解 ERP CRM SRM BI 列 存 储 2

01 SQL Server SQL Server 2008 SQL Server 6-1 SSIS SQL Server ( master ) ( msdb ) SQL Server ( master ) master 6-1 DTS sysadmin 6-1 sysa

Microsoft Word - Web Dynpro For ABAP跟踪测试工具简介 _2_.doc

HCD0174_2008

PowerPoint 演示文稿

ICD ICD ICD ICD ICD

Microsoft Word - template.doc

Ch. 2

HC50246_2009

技 巧 5: 避 免 除 以 0 的 運 算 在 做 除 的 運 算 時, 先 檢 查 除 數 的 數 值, 避 免 有 除 以 0 的 情 況 若 運 算 中 除 數 為 0,SAS 會 在 LOG 中 註 記 提 醒 並 將 運 算 結 果 設 定 為 遺 漏 值, 減 慢 程 式 的 執 行

mvc

untitled

Windows XP

Microsoft Word - SupplyIT manual 3_cn_david.doc

untitled

國 立 政 治 大 學 教 育 學 系 2016 新 生 入 學 手 冊 目 錄 表 11 國 立 政 治 大 學 教 育 學 系 博 士 班 資 格 考 試 抵 免 申 請 表 論 文 題 目 申 報 暨 指 導 教 授 表 12 國 立 政 治 大 學 碩 博 士 班 論

els0xu_zh_nf_v8.book Page Wednesday, June, 009 9:5 AM ELS-0/0C.8

Transcription:

<Insert Picture Here> Oracle 数据库性能调优 金丹 资深技术顾问 2009 Oracle 版权所有第 0 页

最重要的规则 最少的参数, 最少的性能影响 除非你很清楚你在干什么, 否则不要设置 _**** 除非你很清楚你在干什么, 否则不要设置 event 2009 Oracle 版权所有第 1 页

定期监控 DB statspack,awr,addm OS,vmstat,sar. Network Grid Control RUEI 2009 Oracle 版权所有第 2 页

Oracle Tuning Methods Prehistoric (v5) Debug code Dark Ages (v6) Counters/Ratios BSTAT/ESTAT SQL*Trace Renaissance (v7) Introduction of Wait Event instrumentation Move from counters to timers STATSPACK 2009 Oracle 版权所有第 3 页

The Modern Age of Time-based Tuning YAPP (8i) - Instance tuning using instance statistics Non intrusive, always on Broadly scoped Method R (9i) - Session tuning using 10046 SQL traces Tightly scoped Must be highly selective DB Time Tuning (10g) Comprehensive tuning using fundamental notion of time in database Multiple scoping levels Always on, non-intrusive Built into infrastructure: instrumentation, ASH, AWR, ADDM, EM 2009 Oracle 版权所有第 4 页

Oracle 10g/11g 的智能化工具 SQL Tuning Advisor PGA PGA Advisor Memory Buffer Cache Advisor ADDM SQL Access Advisor SGA Library Cache Advisor AWR Space Segment Advisor Undo Advisor 2009 Oracle 版权所有第 5 页

Active Session History (ASH) Samples active sessions every one second into memory (v$active_session_history) Direct access to kernel structures One of ten samples flushed to AWR at every snapshot Data captured includes: SID SQL ID Program, Module, Action Wait event# Object, File, Block actual wait time (if captured while waiting) Enables targeted performance analysis of transient problems 2009 Oracle 版权所有第 6 页

Active Session History (ASH) Query for Khalid Husaini Novels Browse and Read Reviews Add item to cart Checkout using one-click DB Time Time SID Module SQL ID State Event 7:38:26 213 Book by author qa324jffritcf WAITING db file sequential read 7:42:35 213 Get review id aferv5desfzs5 CPU 7:50:59 213 Add to cart hk32pekfcbdfr WAITING buffer busy wait 7:52:33 213 One click abngldf95f4de WAITING log file sync 2009 Oracle 版权所有第 7 页

ASH Report: Main Sections 2009 Oracle 版权所有第 8 页

ASH Report: Top Events 2009 Oracle 版权所有第 9 页

ASH Report: Top SQL 2009 Oracle 版权所有第 10 页

ASH Report: Activity Over Time 2009 Oracle 版权所有第 12 页

Automatic Workload Repository (AWR) Built-in workload and performance statistics repository in the database Automatically Captures Workload Data Every 60 minutes, or manually, saves data for 8 days by default Resides in SYSAUX tablespace Space requirements automatically managed Old data is automatically purged nightly based on retention interval Stores different classes of data: BASE STATISTICS e.g., physical reads SQL STATISTICS e.g., disk reads (per sql stmt) METRICS e.g., physical reads / sec ACTIVE SESSION HISTORY (ASH) 2009 Oracle 版权所有第 13 页

AWR Compare Period Report 2009 Oracle 版权所有第 14 页

AWR Compare Period Report: Load Profile 2009 Oracle 版权所有第 15 页

AWR Compare Period Report: Top Timed Events 2009 Oracle 版权所有第 16 页

数据库性能基础 Schema 设计和 SQL 语句 好的 Schema 和数据模型设计是好的数据库性能的基础. 好的 Schema 和数据模型设计应该使应用操作更加简单并减少错误发生 选择正确的数据类型 ( e.g. Char vs VARCAHR2) 使用不同的索引设计高效率的访问路径 选择正确的存储选项 使用分区 收集并维护准确的统计信息 编写简单高效的 SQL 尽量避免序列化瓶颈 2009 Oracle 版权所有第 17 页

数据库性能基础会话和游标 应用服务器 / 中间件管理数据库会话连接, 保证数据库的性能和稳定 在一台机器上超过 5000 进程会使机器变的不稳定 在实验室很容易模拟大量的数据库连接, 但是在生产系统上要使用则非常困难 logon/logoff 对性能的影响进程的建立和撤销开销非常大 连接和去连接到共享内存的开销也非常大 共享 SQL, 在 OLTP 应该中使用绑定变量 应用应该尽量避免对数据库对象进行 creation drop truncate 等操作 2009 Oracle 版权所有第 18 页

会话管理 不要连接所有浏览器用户 不要连接 执行操作 断开连接 使用连接池 中间层的最大优点 2009 Oracle 版权所有第 19 页

性能与数据安全的一些取舍 影响性能的一些数据安全设置 : 多镜像控制文件 重做日志组中多镜像日志组成员 频繁 Check Point 备份数据文件 归档状态 块校验 并发用户访问和事务 2009 Oracle 版权所有第 20 页

数据库性能基础容量规划 CPU and Memory For OLTP workloads the CPU utilization should not exceed 65-70% Scale Nodes/CPUs/Cores as a power of 2. Start with 4Gig Memory per Core and expand according to workload type I/O Target 5-10 millisec response time for disks performing response time critical I/O. Start by assuming 30 IOPS per disk for OLTP and 20MBytes per Disk in DSS. This is way below theoretical values but allows for media repair etc. You can run HBAs and SAN switches at about 70-90% of theoretical values. Allocate and Administer Disk by bandwidth in addition to storage requirements. 200MB/s per CPU core Interconnect For Data passing intensive DSS Clusters Balance equalize Interconnect bandwidth with I/O bandwidth. Complex queries running across a cluster will perform sorts and joins across the interconnect. In the future we may require higher interconnect bandwidth for DW/BI workloads because the data on disk is compressed Do not confuse bits for Bytes when capacity planning Interconnect or SAN. 2009 Oracle 版权所有第 21 页

Oracle 的性能解决方案 绑定变量 并行查询 索引 物化视图 分区 Real Application Cluster 压缩 结果集缓存 Active Data Guard TimesTen 2009 Oracle 版权所有第 22 页

并行 并行查询 SELECT /*+ PARALLEL(SALES,9)*/ * FROM SALES; SELECT /*+ PARALLEL_INDEX(c,ic,3)*/ * FROM customers c WHERE cust_city = 'MARSEILLE'; 并行 DML ALTER SESSION ENABLE/DISABLE PARALLEL DML MERGE /*+ PARALLEL(c,3) PARALLEL(d,3) */ INTO customers c USING diff_customers d ON (d.cust_id = c.cust_id) WHEN MATCHED THEN UPDATE SET c.cust_last_name = d.cust_last_name, c.cust_city = d.cust_city WHEN NOT MATCHED THEN INSERT (c.cust_id,c.cust_last_name) VALUES (d.cust_id,d.cust_last_name); 并行 DDL CREATE INDEX CREATE TABLE... AS SELECT ALTER INDEX... REBUILD 2009 Oracle 版权所有第 23 页

并行查询性能分析表扫描 vs 索引读取 假设某张表拥有 100,000,000 行记录数, 每行记录 100 Byte 大小, 表扫描 I/O 速率是每秒 1M/10ms, 索引 I/O 是 8k/5ms 并且假设缓存命中率为 80% 200 180 160 140 120 100 80 60 40 20 0 0.001%.01%.1% Index TS Serial TS DOP=2 TS DOP=4 TS DOP=8 TS DOP=16 2009 Oracle 版权所有第 24 页

索引 索引的影响 加快能适当使用索引的 SELECT, UPDATE 减慢 INSERT 速度 需要额外空间 索引使用原则 只有需要的时候才创建相应的索引 为解决某个问题创建一个索引可能会影响其他的 SQL 执行 删除没用的索引 2009 Oracle 版权所有第 25 页

使用索引 : 集中 IO 2009 Oracle 版权所有第 26 页

使用索引 : 分散 IO 2009 Oracle 版权所有第 27 页

索引的类型 唯一及非唯一索引 复合索引 按索引存储方法 B*-tree 普通 反键索引 函数索引 位图索引 索引组织表 2009 Oracle 版权所有第 28 页

物化视图 物化视图 : 是一个预计算的结果集 拥有自己的数据存储 : 拥有自己的索引 适用场合 : 复杂的 join 概要和聚集数据集 2009 Oracle 版权所有第 29 页

分区的作用 分区对性能影响 分区忽略 并行处理 2009 Oracle 版权所有第 30 页

数据分区技术大大提高访问速度 有的放矢 并行处理 select sum(amount) From 销售情况表 Where 日期 between 20-JAN-2004 and 5-FEB-2004 客户计费表 分区可以显著提高访问大表时的性能 分区的存在对应用系统是透明的 分区忽略技术系统核心自动根据分区情况优化数据访问, 忽略无关的数据分区 January 销售情况表 Partition February 销售情况表 Partition March 销售情况表 Partition 2009 Oracle 版权所有第 31 页

强大的并行处理能力 C P U Query--Index--Load Insert--Update--Delete C P U C P U C P U C P U C P U C P U C P U 随着数据库的增长, 必须采用并行处理方式以保证响应时间 在数据库中进行并行处理可以显著提高批量操作的性能 批量更新 批量删除 批量插入 并行执行 SQL 语句 数据动态分片 RAC 的多节点并行更新 2009 Oracle 版权所有第 32 页

EXPLAIN PLAN 命令 : 示例 1 EXPLAIN PLAN SET STATEMENT_ID = 'demo01' FOR SELECT e.last_name, d.department_name FROM hr.employees e, hr.departments d WHERE e.department_id = d.department_id; Explained. EXPLAIN PLAN 命令并不实际执行该 SQL 2009 Oracle 版权所有第 33 页

EXPLAIN PLAN 命令 : 示例 2 SELECT PLAN_TABLE_OUTPUT FROM TABLE(DBMS_XPLAN.DISPLAY()); Plan hash value: 2933537672 ------------------------------------------------------------------------------- Id Operation Name Rows Bytes Cost (%CPU -------------------------------------------------------------------------------- 0 SELECT STATEMENT 106 2862 6 (17 1 MERGE JOIN 106 2862 6 (17 2 TABLE ACCESS BY INDEX ROWID DEPARTMENTS 27 432 2 (0 3 INDEX FULL SCAN DEPT_ID_PK 27 1 (0 * 4 SORT JOIN 107 1177 4 (25 5 TABLE ACCESS FULL EMPLOYEES 107 1177 3 (0 -------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 4 - access("e"."department_id"="d"."department_id") filter("e"."department_id"="d"."department_id") 18 rows selected. 2009 Oracle 版权所有第 34 页

SQL*Plus 中设置 AUTOTRACE: 示例 1 启动 AUTOTRACE set autotrace on 隐藏输出 set autotrace traceonly 只显示执行计划 AUTOTRACE 需要实际执行 SQL 语句 set autotrace traceonly explain 2009 Oracle 版权所有第 35 页

SQL*Plus 中设置 AUTOTRACE: 示例 2 set autotrace traceonly statistics SELECT * FROM products; Statistics ------------------------------------------------------ 1 recursive calls 0 db block gets 9 consistent gets 3 physical reads 0 redo size 15028 bytes sent via SQL*Net to client 556 bytes received via SQL*Net from client 6 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 72 rows processed 2009 Oracle 版权所有第 36 页

哪些因素影响执行计划 统计信息 对象统计信息 表 列 索引 系统统计信息 I/O 性能 CPU 性能 优化器 Hints 初始化参数 索引 分区 物化视图 并行 2009 Oracle 版权所有第 37 页

统计信息如何收集 自动收集统计信息 GATHER_STATS_JOB 手动收集统计信息 使用 DBMS_STATS 包 动态采样 optimizer_dynamic_sampling 2009 Oracle 版权所有第 38 页

优化器 RBO CBO ALL_ROWS FIRST_ROWS FIRST_ROWS_n 2009 Oracle 版权所有第 39 页

Hints 使用举例 UPDATE /*+ INDEX(p PRODUCTS_PROD_CAT_IX)*/ products p SET p.prod_min_price = (SELECT (pr.prod_list_price*.95) FROM products pr WHERE p.prod_id = pr.prod_id) WHERE p.prod_category = 'Men' AND p.prod_status = 'available, on stock' / 2009 Oracle 版权所有第 40 页

Hints 类型 优化器模式 ALL_ROWS 访问路径 FULL 查询转换 STAR_TRANSFORMATION Join 顺序 ORDERED Join 操作 其他 USE_NL, USE_HASH APPEND 2009 Oracle 版权所有第 41 页

SQL Trace 针对当前会话 : SQL> ALTER SESSION SET sql_trace = true; 针对任意会话 : SQL> EXECUTE dbms_session.set_sql_trace(true); SQL> EXECUTE dbms_system.set_sql_trace_in_session 2 (session_id, serial_id, true); 实例级, 可以直接设置初始化参数 : SQL_TRACE = TRUE 2009 Oracle 版权所有第 42 页

TKPROF 格式化 trace 文件 TKPROF 命令示例 : OS> tkprof tracefile outputfile [options] OS> tkprof OS> tkprof ora_902.trc run1.txt OS> tkprof ora_902.trc run2.txt sys=no sort=execpu print=3 2009 Oracle 版权所有第 43 页

TKPROF 格式化后输出 : 示例... select max(cust_credit_limit) from customers where cust_city ='Paris' call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ------- Parse 1 0.02 0.02 0 0 0 0 Execute 1 0.00 0.00 0 0 0 0 Fetch 2 0.10 0.09 1408 1459 0 1 ------- ------ -------- ---------- ---------- ---------- ---------- ------- total 4 0.12 0.11 1408 1459 0 1 Misses in library cache during parse: 1 Optimizer mode: ALL_ROWS Parsing user id: 61 Rows Row Source Operation ------- --------------------------------------------------- 1 SORT AGGREGATE (cr=1459 pr=1408 pw=0 time=93463 us) 77 TABLE ACCESS FULL CUSTOMERS (cr=1459 pr=1408 pw=0 time=31483 us) 2009 Oracle 版权所有第 44 页

10046 事件分析 SQL> alter session set events '10046 trace name context forever, level 8'; Session altered. SQL> alter session set events '10046 trace name context off'; Session altered. 执行跟踪 : SQL> exec dbms_system.set_ev(5,323,10046,8, scott'); PL/SQL procedure successfully completed. 结束跟踪 : SQL> exec dbms_system.set_ev(5,323,10046,0, scott'); PL/SQL procedure successfully completed. 2009 Oracle 版权所有第 45 页

10053 事件分析 SQL> alter session set events '10053 trace name context forever, level 1'; Session altered. SQL> alter session set events '10053 trace name context off'; Session altered. 执行跟踪 : SQL> exec dbms_system.set_ev(5,323,10053,1, scott'); PL/SQL procedure successfully completed. 结束跟踪 : SQL> exec dbms_system.set_ev(5,323,10053,0, scott'); PL/SQL procedure successfully completed. 2009 Oracle 版权所有第 46 页

Q U E S T I O N S A N S W E R S 2009 Oracle 版权所有第 47 页

2009 Oracle 版权所有第 48 页