暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 19C 使用DBMS_SQLTUNE传输SQL调整集

原创 Asher.HU 2021-02-04
706

23.6.2使用DBMS_SQLTUNE传输SQL调整集

您可以使用DBMS_SQLTUNEDBMS_SQLSET中的三个子程序来传输SQL调整集

下表描述了与传输SQL调整集相关的过程。

表23-6传输SQL优化集的过程

DBMS_SQLTUNE过程等效的DBMS_SQLSET过程描述

CREATE_STGTAB_SQLSET

CREATE_STGTAB

创建一个临时表以保存导出的SQL调整集

PACK_STGTAB_SQLSET

PACK_STGTAB

使用SQL调整集填充登台表

UNPACK_STGTAB_SQLSET

UNPACK_STGTAB

将SQL调优集从登台表复制到数据库中

假设条件

本教程假定以下内容:

  • 具有回归SQL的STS驻留在当前版本中创建的生产数据库中。
  • 您在Oracle数据库11g第2版(11.2)中创建的远程测试数据库上运行SQL Performance Analyzer试用
  • 您想要将STS从生产数据库复制到测试数据库,并调整SQL Performance Analyzer试用中的回归。
  • 您想使用Oracle Database Pump在数据库主机之间传输SQL调整集。
  • 您使用DBMS_SQLTUNE而不是DBMS_SQLSET

运输STS:

  1. 在SQL * Plus或SQL Developer中,以具有管理特权的用户身份登录数据库。
  2. 使用该CREATE_STGTAB_SQLSET过程创建一个临时表,以保留导出的SQL调整集。

    以下示例my_11g_staging_tabledba1模式中创建,并将登台表的格式指定为11.2:

    BEGIN
      DBMS_SQLTUNE.CREATE_STGTAB_SQLSET ( 
        table_name  => 'my_10g_staging_table'
    ,   schema_name => 'dba1'
    ,   db_version  => DBMS_SQLTUNE.STS_STGTAB_11_2_VERSION 
    );
    END;
    /
    
  3. 使用以下PACK_STGTAB_SQLSET过程用SQL调整集填充登台表。

    以下示例填充dba1.my_11g_staging_table拥有的STS  my_stshr

    BEGIN
      DBMS_SQLTUNE.PACK_STGTAB_SQLSET (      
        sqlset_name         => 'sqlt_wkld_sts'
    ,   sqlset_owner        => 'sh'
    ,   staging_table_name  => 'my_11g_staging_table'
    ,   staging_schema_owner => 'dba1'
    ,   db_version          => DBMS_SQLTUNE.STS_STGTAB_11_2_VERSION 
    );
    END;
    / 
    
  4. 如果有必要,重新映射。根据上述的STS的声明容器ID值 运送SQL调整设置当CON_DBID值不同的基本步骤 
  5. 使用Oracle Data Pump导出登台表的内容。

    例如,expdp在操作系统提示符下运行命令:

    expdp dba1 DIRECTORY=dpump_dir1 DUMPFILE=sts.dmp TABLES=my_11g_staging_table
    
  6. 将转储文件传输到测试数据库主机。
  7. 以管理员身份登录到测试主机,然后使用Oracle Data Pump导入登台表的内容。

    例如,impdp在操作系统提示符下运行命令:

    impdp dba1 DIRECTORY=dpump_dir1 DUMPFILE=sts.dmp TABLES=my_11g_staging_table 
    
  8. 在测试数据库上,执行以下UNPACK_STGTAB_SQLSET过程以将SQL调整集从登台表复制到数据库中。

    下面的示例显示如何解压缩SQL调整集:

    BEGIN
      DBMS_SQLTUNE.UNPACK_STGTAB_SQLSET (
        sqlset_name        => '%'
    ,   replace            => true
    ,   staging_table_name => 'my_11g_staging_table');
    END;
    /

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论