`

Oracle SQL REPLAY

 
阅读更多

Steps for SQL REPLAY

  1. Collect Sqls
  2. Create the SQL Replay Task with SQL Tuning Set (STS)
  3. Collect SQL Performance Before Changes
  4. Make Database Change ( eg collect stats etc)
  5. Collect SQL Performance After Changes
  6. Comparing SQL Performance Before and After Change
  7. Display the Results of a SQL Replay Task

1.Collect SQLs.

We can collect the sql from the cursor cache and AWR.

from the cursor cache:

SQL> conn henry/henry
已连接。
SQL> exec dbms_sqltune.create_sqlset ('MYSQLSET');

PL/SQL 过程已成功完成。

SQL> DECLARE
2
3 cur dbms_sqltune.sqlset_cursor;
4
5 BEGIN
6
7 OPEN cur FOR
8 SELECT VALUE(p)
9 FROM TABLE (dbms_sqltune.select_cursor_cache) p;
10
11 dbms_sqltune.load_sqlset(
12 sqlset_name => 'MYSQLSET',
13 populate_cursor => cur);
14
15 END;
16 /

PL/SQL 过程已成功完成。

from the AWR.

SQL> DECLARE
2 cur DBMS_SQLTUNE.SQLSET_CURSOR;
3 BEGIN
4
5 OPEN cur FOR
6 SELECT VALUE(P)
7 FROM table(
8 DBMS_SQLTUNE.SELECT_WORKLOAD_REPOSITORY(1,100)) P;
9
10 DBMS_SQLTUNE.LOAD_SQLSET(sqlset_name => 'MYSQLSET',
11 populate_cursor => cur,
12 load_option => 'MERGE',
13 update_option => 'ACCUMULATE');
14 END;
15 /
DECLARE
*
第 1 行出现错误:
ORA-13768: 快照 ID 必须介于 231 和 355 之间。
ORA-06512: 在 "SYS.DBMS_SQLTUNE", line 4561
ORA-06512: 在 line 10


SQL> ed
已写入 file afiedt.buf

1 DECLARE
2 cur DBMS_SQLTUNE.SQLSET_CURSOR;
3 BEGIN
4 OPEN cur FOR
5 SELECT VALUE(P)
6 FROM table(
7 DBMS_SQLTUNE.SELECT_WORKLOAD_REPOSITORY(231,354)) P;
8 DBMS_SQLTUNE.LOAD_SQLSET(sqlset_name => 'MYSQLSET',
9 populate_cursor => cur,
10 load_option => 'MERGE',
11 update_option => 'ACCUMULATE');
12* END;
13 /

PL/SQL 过程已成功完成。

2.Create the SQL Replay Task with SQL Tuning Set (STS)

SQL> ed
已写入 file afiedt.buf

1 declare
2 l_task_id varchar2(20);
3 begin
4 l_task_id := dbms_sqltune.create_tuning_task (
5 sqlset_name => 'MYSQLSET',
6 task_name => 'MY_REPLAY_TASK');
7* end;
SQL> /
declare
*
第 1 行出现错误:
ORA-13607: 指定的任务或对象 MY_REPLAY_TASK 已存在
ORA-06512: 在 "SYS.DBMS_SQLTUNE_INTERNAL", line 7718
ORA-06512: 在 "SYS.PRVT_SQLADV_INFRA", line 275
ORA-06512: 在 "SYS.DBMS_SQLTUNE", line 674
ORA-06512: 在 line 4


SQL> ed
已写入 file afiedt.buf

1 declare
2 l_task_id varchar2(20);
3 begin
4 l_task_id := dbms_sqltune.create_tuning_task (
5 sqlset_name => 'MYSQLSET',
6 task_name => 'MY_REPLAY_TASK1');
7* end;
SQL> /

PL/SQL 过程已成功完成。

3.Collect SQL Performance Before Changes

SQL> begin
2 dbms_sqltune.execute_tuning_task (
3 execution_name => 'MY_REPLAY_EXECUTE_BEFORE',
4 task_name => 'MY_REPLAY_TASK1');
5 end;
6 /

PL/SQL 过程已成功完成。

4.Make Database Change

SQL> alter system set "_b_tree_bitmap_plans" = false;

系统已更改。

SQL> alter system set optimizer_index_cost_adj=1;

系统已更改。

5.Collect SQL Performance After Changes

SQL> begin
2
3 dbms_sqltune.execute_tuning_task (
4 execution_name => 'MY_REPLAY_EXECUTE_AFTER',
5 task_name => 'MY_REPLAY_TASK1');
6 end;
7 /

PL/SQL 过程已成功完成。

6. Comparing SQL Performance Before and After Change

SQL> begin
2
3 dbms_sqltune.execute_tuning_task (
4 execution_name => 'MY_COMPARE_EXECUTION',
5 task_name => 'MY_REPLAY_TASK1');
6 end;
7 /

PL/SQL 过程已成功完成。

7.Display the Results of a SQL Replay Task

set serveroutput on size 999999

set long 999999

select dbms_sqltune.report_tuning_task (‘MY_REPLAY_TASK1’) from dual;

分享到:
评论

相关推荐

    Oracle11g新特性实验之三-Database replay(重演).docx

    Oracle 11g 新特性实验之三 - Database Replay(重演) Oracle 11g 中的 Database Replay(重演)是一种新的特性,能够模拟生产数据库的工作负载,以便在测试环境中进行测试和优化。下面将详细介绍 Database Replay...

    oracle之SQL优化

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,SQL(结构化查询语言)是与数据库交互的基础工具。在Oracle环境中,SQL优化对于提升系统性能、减少资源消耗至关重要。本篇文章将深入探讨Oracle中的SQL...

    windowx64 oracle12.2.0.1.0 命令行工具集

    wrc: wrc 是 Oracle 的 Workload Replay Capture 工具,用于捕获生产环境的工作负载,并将其用于性能测试和分析。 sqlldr: sqlldr 是 Oracle 的 SQL*Loader 工具,用于将外部数据加载到 Oracle 数据库中。它允许你...

    Oracle第2章初识Oracle11g.pptx

    本章主要围绕Oracle 11g的基础知识展开,包括Oracle的发展历史、新特性、体系结构、安装过程以及PL/SQL语言基础。 Oracle自1977年由Larry Ellison等人创立以来,经历了多个版本的迭代,逐步完善和发展。从早期的...

    Oracle11g教程_初识Oracle11g

    本教程旨在引导初学者深入理解Oracle 11g的基础知识,包括其发展历程、新特性、体系结构、安装流程以及PL/SQL语言基础。 Oracle自1977年成立以来,经历了多次重大版本更新,从最初的Oracle 3到Oracle 11g,不断适应...

    sql面试题\oracle面试题目

    ### SQL与Oracle面试知识点解析 #### 1. 冷备份与热备份的不同点及各自的优点 - **冷备份**:通常在数据库完全关闭的情况下进行,适用于全盘备份。其主要优点在于备份速度快、数据一致性高,恢复过程简单快速。缺点...

    ORACLE 测试工具

    5. **Oracle Database Replay**:这个工具用于性能测试,通过记录生产环境的数据库活动,然后在测试环境中重放这些活动,以评估系统在高负载下的表现。 6. **Oracle SQL Tuning Advisor**:这是一个内置的性能优化...

    《收获,不止SQL优化》一书的代码

    10. **数据库调优工具与策略**:如SQL Tuning Advisor、Database Replay、SQL Access Advisor等工具的使用。 通过书中提供的代码示例,读者可以亲手操作,体验各种优化技巧的实际效果。这些代码可能包括各种性能...

    Oracle单实例版本升级(11g To 12c).docx

    这个过程包括 Database Replay、Sql Performance Analyzer 和 sql 计划管理等几个方面。 Database Replay 数据库重播功能可以捕获生产系统上的实际数据库工作负载,并在测试系统上重播。这使您能够在不影响生产...

    Oracle.Database.11g.The.Complete.Reference.2009

    discussions of new features such as SQL replay, change management, and result caching in later chapters. The goal of this chapter is to present a high-level overview of the capabilities you can ...

    Oracle Database 11g The Complete Reference.pdf

    2. **性能优化**:通过引入多种新的性能优化技术,如SQL重播(SQL Replay)、结果缓存(Result Caching)等,Oracle Database 11g能够显著提高查询性能和响应速度。 3. **可管理性的提升**:为了方便数据库管理员更好地...

    oracle 数据重演

    - 数据重演(SQL Replay)是Oracle Database Enterprise Edition的一个特性,它记录了用户在生产环境中的数据库活动,然后在测试环境中重新播放这些活动,以重现生产环境的负载。 - 这种方法可以帮助识别性能瓶颈...

    Oracle Database RAT介绍

    RAT主要包括两个核心功能:数据库重放(Database Replay)和SQL性能分析器(SQL Performance Analyzer),以及共享SQL调优集(SQL Tuning Set)功能。 二、Database Replay 数据库重放 数据库重放(Database Replay)是RAT...

    初识Oracle11g.pptx

    2. **SQL重演(SQL Replay)**:专注于特定SQL语句的性能问题,提供精准的性能调优。 3. **计划管理(Plan Management)**:帮助保持SQL查询的执行计划稳定,避免因数据变化导致的性能下降。 4. **自动诊断知识库...

    oracle9i enterprise manager

    3. **故障诊断与修复**:EM内置了多种故障诊断工具,如ADDM(Automatic Database Diagnostic Monitor)、SQL Trace和Database Replay,用于识别和解决数据库运行中的问题。 4. **安全性和审计**:EM强化了数据库的...

    Oracle Database Real Application Testing User’s Guide 11g Releas

    这包括Database Replay、Active Data Guard和SQL Performance Analyzer等工具,这些工具能够帮助用户预测并解决潜在的性能问题,减少数据库升级或更改所带来的风险。 1. Database Replay:这是一个功能强大的工具,...

Global site tag (gtag.js) - Google Analytics