首页 > 其他分享 >OB_执行计划缓存

OB_执行计划缓存

时间:2023-12-27 09:35:04浏览次数:36  
标签:缓存 cache OB 计划 plan 淘汰 执行

执行计划缓存淘汰

自动淘汰

如果租户内存大小为10G,并且变量设置如下:

  • ob_plan_cache_percentage = 10;
  • ob_plan_cache_evict_high_percentage = 90;
  • ob_plan_cache_evict_low_percentage = 50;

则:

  • 计划缓存内存上限绝对值 = 10G * 10 / 100 = 1G;
  • 淘汰计划的高水位线 = 1G * 90 / 100 = 0.9G;
  • 淘汰计划的低水位线 = 1G * 50 / 100 = 0.5G;

当该租户在某个server上计划缓存使用超过0.9G时,会触发淘汰,优先淘汰最久没执行的计划
当淘汰到使用内存只有0.5G时,则停止淘汰
如果淘汰速度没有新计划生成速度快,计划缓存使用内存达到内存上限绝对值1G时,将不再往计划缓存中添加新计划,直到淘汰后使用的内存小于1G才会添加新计划到计划缓存中

手动淘汰

ALTER SYSTEM FLUSH PLAN CACHE [tenant_list] [global] 

执行计划缓存失效

1、schema变更,DDL等会造成执行计划失效

2、重新收集统计信息时会造成执行计划失效

3、每日合并时,会重新收集统计信息,每日合并后,执行计划会失效

4、outline绑定执行计划时,会导致sql执行计划失效

 

执行计划缓存使用控制

ob_enable_plan_cache 参数来控制session或者global级别是否使用缓存的执行计划。默认是true,使用计划缓存。

  • 使用 Hint 语句 /+USE_PLAN_CACHE(NONE)/ 表示不使用计划缓存
  • 使用 Hint 语句 /+USE_PLAN_CACHE(DEFAULT)/ 表示使用计划缓存
  •  

计划缓存相关的视图

  • (g)v$plan_cache_stat               记录每个计划缓存的状态,每个计划缓存在该视图中有一条记录。
  • (g)v$plan_cache_plan_stat       记录计划缓存中所有执行计划的具体信息及每个计划总的执行统计信息。
  • (g)v$plan_cache_plan_explain   记录某条 SQL 在计划缓存中的执行计划
  • 计划缓存暂不支持的场景
    l 执行计划所占内存超过 20 MB 时,不会加入计划缓存
    l 如果该计划为分布式执行计划且涉及多个表,不会加入计划缓存

 

标签:缓存,cache,OB,计划,plan,淘汰,执行
From: https://www.cnblogs.com/z-uncle/p/17928897.html

相关文章

  • shared_preferences缓存
    封装import'dart:convert';import'package:shared_preferences/shared_preferences.dart';classJSpUtil{JSpUtil._internal();//私有的构造方法,防止外部实例化factoryJSpUtil()=>_instance;//工厂方法,返回JSpUtil唯一实例staticlatefinalJSpU......
  • D. Yet Another Inversions Problem
    D.YetAnotherInversionsProblemYouaregivenapermutation$p_0,p_1,\ldots,p_{n-1}$ofoddintegersfrom$1$to$2n-1$andapermutation$q_0,q_1,\ldots,q_{k-1}$ofintegersfrom$0$to$k-1$.Anarray$a_0,a_1,\ldots,a_{nk-1}$oflength$n......
  • Mininet|Protobuf|Bmv2|PI|P4c|Ptf搭建记录
    写在前面看个乐子软件:VMware17pro+Ubuntu20.04目前运行tutorials中basic例程没问题,但不保证完全正确安装网上p4的资料不算很多,github官方社区提供了搭建脚本tutorials/vm-ubuntu-20.04/user-dev-bootstrap.shatmaster·p4lang/tutorials(github.com),搭建过程一开始也参......
  • openjdk源码-java是如何执行shell命令的
    一般我们在java中调用shell脚本的方式如下publicintexecuteLinuxCmd(Stringcmd){LOGGER.info("cmd:{}",cmd);Runtimerun=Runtime.getRuntime();try{Processprocess=run.exec(cmd);InputStreamin=proce......
  • xxl_job系列---【xxl_job快速入门教程】
    1.gitee仓库地址(克隆到本地)地址:https://gitee.com/xuxueli0323/xxl-job2.项目结构3.部署xxl-job-admin切换到2.4.0分支3.1修改数据库连接mysql8(默认)3.2修改数据库连接mysql5.71.修改mysql驱动2.修改配置文件4.新springboot项目集成xxl_job4.1.pom中加入下面依赖<?x......
  • [EFI]华硕VivoBook FL8700JP (X509JP) 电脑 Hackintosh 黑苹果efi引导文件
    硬件型号驱动情况主板华硕VivoBookFL8700JP(X509JP)处理器i7-1065G7已驱动内存8GB+4GBDDR4已驱动硬盘西数512GSSD已驱动显卡IntellrisPlusGraphics已驱动声卡RealtekALC256已驱动有线网卡无无无线网卡+蓝牙IntelWireless-AC9461已驱动支持系统版本macosCatalina(10.15)—......
  • virtualbox安装windows10出现OOBE,卡在OOBE。
    参照https://zhuanlan.zhihu.com/p/419237209https://www.0z.gs/win/781.html文档https://learn.microsoft.com/zh-cn/windows-hardware/manufacture/desktop/boot-windows-to-audit-mode-or-oobe?view=windows-11OOBE也就是OutofBoxExperience开箱即用体验。卡在OOBE跳......
  • OB_SQL执行计划
    查看执行计划查看预估执行计划通过Explain命令查看优化器针对给定SQL生成的逻辑执行计划Explain不会真正执行给定的SQL,可以放心使用该功能而不用担心在性能调试中可能给系统性能带来影响Explain命令格式如下例所示,展示格式包括BASIC、EXTENDED、PARTITIONS等等,内容的详细......
  • cargo-make rust 任务执行以及构建工具
    再学习nakago框架的时候发现其使用了cargo-make这个工具,但是很方便,类似make的构建模式包含的特性依赖管理,别名支持,支持workspace简单使用安装cargoinstall--forcecargo-make参考使用创建一个cargo项目 cargonewappdemoMakefile.toml文件cargonewappdemoMakefile.to......
  • 【MYSQL高级】Mysql找出执行慢的SQL【慢查询日志使用与分析】
    分析慢SQL的步骤1.慢查询的开启并捕获:开启慢查询日志,设置阈值,比如超过5秒钟的就是慢SQL,至少跑1天,看看生产的慢SQL情况,并将它抓取出来2.explain+慢SQL分析3.showProfile。(比explain还要详细,可以查询SQL在MySQL数据库中的执行细节和生命周期情况)4.运维经理ORDBA,进行MySQL数据库......