首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用SPM (SQL计划管理)- Oracle DB

SPM (SQL Plan Management) 是 Oracle 数据库中的一个功能,用于管理 SQL 查询的执行计划。它可以帮助优化数据库性能,提高查询的执行效率。

SPM 的主要作用是捕获和管理 SQL 查询的执行计划,以确保查询在不同环境下的稳定性和一致性。它通过以下步骤实现:

  1. 捕获执行计划:SPM 会自动捕获 SQL 查询的执行计划,并将其存储在 SQL Plan Baseline 中。SQL Plan Baseline 是一个存储执行计划的集合,用于后续的管理和比较。
  2. 计划演化:当数据库发生变化(例如,统计信息更新、索引变更等)时,原始的执行计划可能不再适用。SPM 可以自动检测这些变化,并生成新的执行计划。通过比较不同执行计划的性能,SPM 可以选择最佳的执行计划,并将其添加到 SQL Plan Baseline 中。
  3. 执行计划管理:SPM 可以管理 SQL Plan Baseline 中的执行计划,包括启用、禁用、删除等操作。这样可以确保数据库在不同环境下的查询性能稳定,并避免由于执行计划变化而导致的性能问题。

SPM 的优势包括:

  1. 自动优化:SPM 可以自动捕获和管理执行计划,无需手动干预。这样可以节省开发人员的时间和精力,并提高数据库性能。
  2. 稳定性和一致性:通过管理执行计划,SPM 可以确保查询在不同环境下的性能稳定和一致。这对于关键业务应用非常重要。
  3. 自适应性:SPM 可以根据数据库的变化自动调整执行计划,以适应不同的环境和查询需求。这样可以提高数据库的适应性和灵活性。

SPM 的应用场景包括:

  1. 关键业务应用:对于关键业务应用,稳定性和一致性非常重要。SPM 可以确保查询的执行计划在不同环境下保持一致,提高应用的性能和可靠性。
  2. 多租户环境:在多租户环境中,不同租户的查询需求可能不同。SPM 可以根据不同租户的需求自动调整执行计划,提高数据库的适应性和性能。
  3. 数据库升级:在数据库升级过程中,执行计划可能会发生变化。SPM 可以帮助管理和调整执行计划,确保升级后的数据库性能稳定。

腾讯云提供了一系列与数据库性能优化相关的产品和服务,例如云数据库 TencentDB for MySQL、TencentDB for PostgreSQL 等。这些产品可以帮助用户管理和优化数据库性能,提供稳定和高效的数据库服务。

更多关于腾讯云数据库产品的信息,请访问腾讯云官方网站:https://cloud.tencent.com/product/cdb

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

DB笔试面试609】在Oracle中,SPMSQL Plan Management,SQL计划管理)是什么?

♣ 题目部分 在Oracle中,SPMSQL Plan Management,SQL计划管理)是什么? ♣ 答案部分 Outline的缺点是太过死板,当数据量大幅度变化时无法做出相应的改变。...在Oracle 11g中,Oracle提供DBMS_SPM包来管理SQL Plan,SPM是一种预防机制,它记录并评估SQL的执行计划,将已知的高效的SQL执行计划建立为SQL计划基线。...如果SQL改变后的执行计划是安全的,那么SQL使用新的执行计划,因此,Oracle维护单个SQL执行计划的历史信息,Oracle维护的SQL执行计划的历史仅仅针对重复执行的SQLSQL计划基线可以手工...(2)成批加载(Manual Plan Loading): 使用DBMS_SPM程序包可以加载SQL计划基线。该程序包支持手动管理SQL计划基线。...在SQL计划基线的演变阶段,Oracle评估新的计划的性能并将性能较好的计划存放在SQL计划基线中,可以使用DBMS_SPM包的EVOLVE_SQL_PLAN_BASELINE过程用户将新的SQL PLAN

86210

Oracle固定SQL的执行计划(二)—SPM

随着Oracle数据库版本的不段推进,其CBO的算法、功能也在一直不断进化和增加,所以同样的SQL有可能在新版本的Oralce数据库中执行效率更高,如果我们使用SQL Profile(特别是使用了Manual...而SPM的推出可以说彻底解决了执行计划稳定性的问题,它既能主动地稳定执行计划,又保留了继续使用新的执行效率可能更高的执行计划的机会。...从上述测试结果可以看出,实际上我们可以轻易地在目标SQL的多个执行计划中切换,所以SPM确实是既能够主动地稳定执行计划,又保留了继续使用新的执行计划的机会,并且我们很容易就能启用新的执行计划。...手工生成目标SQLSQL Plan Baseline的具体步骤为: 1)针对目标SQL使用DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE手工生成其初始执行计划所对应的SQL...,然后对改写后的SQL使用DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE手工生成新的执行计划所对应的SQL Plan Baseline。

1.2K10
  • DB笔试面试610】在Oracle中,SPM使用有哪些步骤?

    ♣ 题目部分 在Oracle中,SPM使用有哪些步骤?...因为只有标记为ENABLE和ACCEPT的plan才可以被使用。 下面示例将我们的第一个走全表扫描的执行计划标记为fixed。标记为fixed的执行计划会被优先使用。...FIXED表示优化程序仅考虑标记为FIXED的计划,而不考虑其它计划。例如,如果有10个基线计划,其中的三个计划被标记为FIXED,则优化程序将仅使用这三个计划中的最佳计划,而忽略其它所有计划。...如果某个SQL计划基线至少包含一个已启用的已修复计划,则该SQL计划基线就是FIXED的。如果在修复的SQL计划基线中添加了新计划,则在手动将这些新计划声明为FIXED之前,无法使用这些新计划。...fixed,所以优先使用这个执行计划

    1.2K10

    DB应用】SQL执行计划简述

    SQL语句的执行 计划则决定了SQL语句将会采用何种方式从数据库提取数据并返回给客户端,本文描述的将是如何通过EXPLAIN PLAN 获取SQL语句执行计划来获 取SQL语句的执行计划。...一、获取SQL语句执行计划的方式 使用explain plan 将执行计划加载到表plan_table,然后查询该表来获取预估的执行计划 查询动态性能视图vsql_plan,vsql_plan_statistics...,v 查询自动工作量资料库(Automatic Workload Repository)或查询Statspack,即从资料库中获取执行计划 启用执行计划跟踪功能,即autotrace功能 使用PL/SQL...Developer提供的获取执行计划方法 使用Toad工具来获取执行计划 二、explain plan工作实质、前提及操作方法 1....工作实质 将SQL语句预估的执行计划加载到表plan_table,是对表plan_table 执行了DML操作,故不会执行隐式提交 可以对select,insert,update,merge,delete

    51170

    DB笔试面试600】在Oracle中,如何获取SQL历史执行计划

    ♣ 题目部分 在Oracle中,如何获取SQL历史执行计划?...♣ 答案部分 历史执行计划只能从AWR中获取,如果AWR没有记录的话,那么就无法获取历史执行计划了,获取历史执行计划的命令如下所示: SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_AWR...('&sqlid')); 对于历史计划,可以生成SQL报告,命令如下所示: SELECT * FROM TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_SQL_REPORT_HTML...下面的例子可以直接从AWR中获取SQL_ID为“bsa0wjtftg3uw”的执行计划,可以看到历史有2种执行计划,一个是全表扫描,一个是索引范围扫描: SYS@RAC2LHR1> SELECT * FROM...本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。

    1.2K20

    Oracle优化器】SQL计划指令(SQL Plan Directives)

    为了缓解这个问题Oracle 12c推出了SQL指令计划SQL Plan Directives 以后简称SPD)功能,保存为了以后生成最优执行计划的一些指令和附加信息到字典表中,达到持久化的目的。...SQL计划指令(SPD)的保存 Oracle数据库会自动地维护SQL计划指令(SPD)相关信息。 ?...Oracle的后台进程会每隔15分钟把SQL计划指令(SPD)相关信息从共享池中保存到SYSAUX表空间内相关的字典表中。...当由于扩展统计信息(特别是列组信息)缺失,SQL计划指令(SPD)被使用并且能够解决基数不准确预估的问题的情况时,在下一次统计信息收集时(自动或者手动收集),Oracle会在相应的表上自动创建列组信息。...如果表上创建了相关列组信息,以后的解析中将使用该列组信息,而其相应的SQL计划指令(SPD)会被标记为[SUPERSEDED]不再被使用,并且根据SQL计划指令(SPD)的保存期间进行自动删除。

    81420

    DB笔试面试603】在Oracle中,固定SQL执行计划的方法有哪些?

    ♣ 题目部分 在Oracle中,固定SQL执行计划的方法有哪些?...此时如果更改SQL,那么可能需要重新修改源程序以及重新编译程序。如果修改源程序的成本比较大,那么可以使用一些方法在不改变源应用程序的情况下更改特定SQL的执行计划并固定下来。...因为在SQL语句的执行计划发生更改时,可能存在性能风险。SQL计划发生更改的原因有很多,如优化程序版本、优化程序统计信息、优化程序参数、方案定义、系统设计和SQL概要文件创建等。...有4种方式可以固定和控制执行计划,分别是使用Hint(提示)、OUTLINE(存储概要)、SQL PROFILE(SQL概要文件)和SPMSQL Plan Management,SQL计划管理),如下表所示...本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。

    73420

    使用OEM,SQL*Plus,iSQL*Plus 管理Oracle实例

    --========================================== --使用OEM,SQL*Plus,iSQL*Plus 管理Oracle实例 --================...========================== /* 一、管理组件 Oracle 10g数据库管理包含三个组件,本文主要介绍Database Control,SQL*Plus及iSQL*Plus...使用emca命令来重建EM档案库,关于emca的用户,使用emca -h 来查看详细说明 */ [oracle@robinson scripts]$ emca -config dbcontrol db...三、使用SQL*Plus及iSQL*Plus管理Oracle SQL*Plus及iSQL*Plus同样可以完成Oracle管理工作,能够通过命令的方式来执行查询,更新,删除等操作 1.SQL*Plus...使用相关账户登陆到到实例,启动数据库,完成相关的管理任务 */ [oracle@robinson scripts]$ sqlplus / as sysdba SQL*Plus: Release

    99030

    DB笔试面试608】在Oracle中,如何使用STA来生成SQL Profile?

    ♣ 题目部分 在Oracle中,如何使用STA来生成SQL Profile? ♣ 答案部分 利用STA对语句进行优化后,STA会对语句进行分析,采用最优的优化策略,并给出优化后的查询计划。...这个时候就可以利用Sql Profile,将优化策略存储在Profile中,Oracle在构建这条语句的查询计划时,就不会使用已有相关统计数据,而使用Profile的策略,生成新的查询计划。...第一步:给用户赋权限 [ZHLHRSPMDB2:oracle]:/oracle>sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production...但上述方法主要是依赖sql tuning advisor,如果它无法生成你想要的执行计划.你还可以通过手动的方式,通过sql profile把hint加进去.复杂的SQL的hint可以采用脚本coe_xfr_sql_profile.sql...使用PLSQL DEVELOPER 11查看执行计划,如下图,新版本的好处: ? 本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。

    2.7K20

    DB笔试面试596】在Oracle中,什么是执行计划

    ♣ 题目部分 在Oracle中,什么是执行计划? ♣ 答案部分 执行计划指示Oracle如何获取和过滤数据、产生最终结果集,这是影响SQL语句执行性能的关键因素。...在深入了解执行计划之前,首先需要知道执行计划是在什么时候产生的,以及如何让SQL引擎为语句生成执行计划。 在Oracle中,任何一条语句在解析过程中都会生成一个唯一的数值标识,即SQL_ID。...而同一条语句,在解析过程中,可能会因为执行环境的改变(例如某些优化参数被改变)而生成多个版本的游标,不同的游标会有不同的执行计划。...每个游标都会按顺序赋予一个序列号,即CHILD_NUMBER,一条语句生成的第一个游标的CHILD_NUMBER为0;相应的,Oracle会为每个执行计划生成一个HASH值以作区分。...而多个不同版本的游标,其执行计划可能会相同,也可能不同。 本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。

    44420

    Oracle数据库12cR2版本的SQL计划管理

    SQL计划管理SPM)提供了这样一个框架,并允许完全控制计划的演化 。优化器使用SPM自动管理执行计划并且确保已知的和已经验证过的执行计划使用。...最后一部分提供了如何一步一步使用SPM在一些艰难的任务中比如升级提升数据库和应用的性能。 SQL计划管理 SQL计划管理SPM)确保运行时性能不会因执行计划更改而降低。...可以通过四种不同的方式手工加载计划使用dbms_spm包或通过Oracle企业管理使用的功能(EM)进行配置: SQL Tuning集 游标缓存 AWR资料库(12CR2版本) 从staging表取出...还有一个每周定期清理进程(mmon)管理SPMSQL管理库中使用的磁盘空间。...可以使用dbms_xplan.display_sql_plan_baseline过程或者ORACLE企业管理器EM去监控所有SQL计划基线的详细执行计划

    1.3K100

    Oracle智能之SQL诊断:SQL Tuning Advisor推荐执行计划

    张大朋(Lunar)Oracle 资深技术专家 Lunar 拥有超过十年的 ORACLE SUPPORT 从业经验,曾经服务于ORACLE ACS部门,现就职于 ORACLE Sales Consultant...在这个演示过程中,使用SQL Tuning Advisor来进行辅助,在 Oracle 数据库中,SQL Tuning Advisor 的智能化程度可能超过很多人的想象,应该多学习和使用。...首先收集统计信息,再接受建议的执行计划,现在看看 SQL 执行的情况: 这里我们看到,这个执行计划中已经使用了索引,并且逻辑读从49降低为14。...结论:虽然这个SQL的hint中指定了no index,即不使用索引,但是SQL语句仍然按照SYS_SQLPROF_015236655fb80000指定的profile使用了index。...这说明dbms_sqltune.accept_sql_profile方式绑定的执行计划优先级高于hint指定是否使用索引的方式。

    1.3K50

    如何使用ELK Stack分析Oracle DB日志

    在早期的ELK系统中,常采用Logstash进行日志的采集,但Logstash性能消耗较大,后来就出现了轻量级的Beat模块进行日志或性能数据的采集,这里使用Filebeat进行日志的采集。...Logstash配置文件主要由三部分构成,其中input部分定义kafka的topic,并使用json进行解析,否则将无法得到Filebeat的部分Field数据。...日志整合系统中的kafka和Elasticsearch在面对多个服务日志分析时,如何监控其性能并做出应对就极为必要,这里推荐两个监控管理软件: https://github.com/yahoo/kafka-manager...如果这种探索分析简单,Kibana就足够了,如果要探索分析的数据和行为复杂,就需要用户熟练使用Kibana的图形界面和Elasticsearch提供的DSL语言,在Kibana上逐步地进行探索分析。...系统架构和性能服务团队,目前在Oracle公司数据库研发部门工作。

    2.7K20

    使用KVM克隆用于Oracle DB的主机

    首先,通过现有的vm1「在上篇文章 使用KVM创建OEL虚拟机 已创建」克隆出一个vm,名字叫做db1,然后修改一些配置,使其更适用于Oracle DB的主机。...使用virt-manager图形进入终端,修改IP地址之后就可以ssh连接IP地址登陆了,再来配置解决virsh console db1 问题; 1)在 /etc/securetty 文件尾部追加内容...,回车后输入账号密码登录,如果要退出执行 Ctrl+] [root@bogon ~]# virsh console db1 连接到域 db1 换码符为 ^] Oracle Linux Server...running CPU: 2 CPU 时间: 184.7s 最大内存: 2097152 KiB 使用的内存: 2097152 KiB 持久: 是 自动启动: 禁用 管理的保存...running CPU: 4 CPU 时间: 30.1s 最大内存: 16777216 KiB 使用的内存: 16777216 KiB 持久: 是 自动启动: 禁用 管理的保存

    73030
    领券