当前位置: 首页 > news >正文

Oracle统计信息手动收集与修改

Oracle统计信息手动收集与修改

  • 检查统计信息
  • 收集统计信息
    • Schema统计信息收集
    • 表统计信息收集
  • 修改统计信息
  • 锁定统计信息

检查统计信息

查看表统计信息是否过期:

select owner,table_name,partition_name from dba_tab_statistics 
where STATTYPE_LOCKED is null and STALE_STATS='YES' and owner='XXX';select table_name,partition_name from user_tab_statistics 
where STATTYPE_LOCKED is null and STALE_STATS='YES';

其中,stattype_locked表示锁定的统计信息类型(data/cache/all),stale_stats表示统计信息是否过期。

收集统计信息

Schema统计信息收集

收集某个用户下所有数据库对象的统计信息:

BEGINdbms_stats.gather_schema_stats(ownname => 'XXX',     --用户Schema名称estimate_percent => 60,               --取样率(不能超过100)method_opt   => 'FOR ALL COLUMNS SIZE AUTO',degree 	  => 32,                   --并行度(对于只能串行的某些内部SQL不生效)cascade	  => true,                 --收集表统计信息的同时也收集索引统计信息options          => 'GATHER AUTO',    --自动收集必要的统计信息no_invalidate	  => FALSE);           --使shared pool中统计信息相关的游标立即失效
END;
/

注意:

  • estimate_percent:收集表统计信息取样的行数占总行数的比率。取值范围在0.000001到100之间,默认由DBMS_STATS.AUTO_SAMPLE_SIZE参数决定。
  • method_opt:直方图统计信息收集方法。
    • 默认为FOR ALL COLUMNS SIZE AUTO,表示Oracle自己决定列直方图的收集方法;
    • 取值为FOR ALL COLUMNS SIZE REPEAT时,仅对已有直方图统计信息的列收集直方图。
  • degree:统计信息收集的并行度,默认值为NULL。
    • 不要超过parallel_max_servers参数的值。
    • 对于只能串行的某些内部SQL不生效。
  • options:收集哪些表的统计信息。
    • 默认为GATHER,收集指定Schema下所有对象的统计信息;
    • 取值为GATHER AUTO时,自动收集必须的统计信息,除no_invalidate以外的绝大多数参数都会被忽略;
    • 取值为GATHER STALE时,仅对统计信息已过期的对象收集统计信息;
    • 取值为GATHER EMPTY时,仅对没有统计信息的对象收集统计信息。
  • no_invalidate:是否使shared pool中统计信息相关的游标立即失效。默认为DBMS_STATS.AUTO_INVALIDATE,数据库自己决定。
    • 取值为TRUE时,收集完统计信息后,不会使共享池中的游标立即失效,即使共享游标已经不是最优的执行计划。原有的执行计划只有在被age out或者flush out之后,才会生成新的执行计划;
    • 取值为FALSE时,收集完统计信息后,使共享池中的游标立即失效,可能在短时间内造成大量硬解析。

表统计信息收集

收集单张表的统计信息:

BEGINdbms_stats.gather_table_stats(ownname	 => 'XXX',tabname  => 'XXX_TABLE_NAME',             --表名partname => 'P11',                        --分区名(可以省略)estimate_percent => 60,method_opt	      => 'FOR ALL COLUMNS SIZE REPEAT',degree 	      => 32,cascade	      => true,no_invalidate	  => FALSE);
END;
/

示例:

exec dbms_stats.gather_table_stats('XX_SCHEMA_NAME','XX_TABLE_NAME',cascade=>true,no_invalidate=>false);

修改统计信息

对于某些无法准确收集统计信息、并且行数基本不变的表,可以手动指定行数统计信息。

手动修改单张表的统计信息:

BEGINdbms_stats.set_table_stats(ownname => 'XXX',tabname  => 'XXX_TABLE_NAME',      --表名partname => 'P11',                 --分区名(可以省略)numrows  => 10000,                 --手动指定表或分区中行数的统计信息no_invalidate => FALSE);
END;
/

示例:

exec dbms_stats.set_table_stats('XX_SCHEMA_NAME','XX_TABLE_NAME',numrows=>20000,no_invalidate=>false);

类似地,也可以通过DBMS_STATS.SET_COLUMN_STATS来手动指定列的统计信息(distcnt、density、nullcnt、avgclen等)。

锁定统计信息

手动修改统计信息后,如果不想表的统计信息再发生变化,还可以锁定数据库对象的统计信息。

示例:

--锁定表的统计信息
exec dbms_stats.lock_table_stats(ownname => 'XX_SCHEMA_NAME',tabname => 'XX_TABLE_NAME');--锁定整个Schema下所有对象的统计信息
exec dbms_stats.lock_schema_stats(ownname => 'XX_SCHEMA_NAME');

References
[1] https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_STATS.html#GUID-3B3AE30F-1A34-4BFE-A326-15048F7E904F
[2] http://blog.itpub.net/17203031/viewspace-1067620/

相关文章:

Oracle统计信息手动收集与修改

Oracle统计信息手动收集与修改 检查统计信息收集统计信息Schema统计信息收集表统计信息收集 修改统计信息锁定统计信息 检查统计信息 查看表统计信息是否过期: select owner,table_name,partition_name from dba_tab_statistics where STATTYPE_LOCKED is null a…...

鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统

. 项目背景 一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管理的提升提出了更高的要求。 二、企业通过数字化转型,不仅有利于优化业务流程、提升经营管…...

ubuntu安装freeswitch 1.10.10

1、安装ffmpeg4.2 1.1、安装依赖库 sudo apt install yasm libogg-dev pkg-config libopus-dev libvpx-dev libx264-dev libx265-dev libfdk-aac-dev libsdl2-dev libfdk-aac-dev libmp3lame-dev libopencore-amrwb-dev libopencore-amrnb-dev libvorbis-dev libxvidcore-dev…...

什么类型的企业适合应用RPA?

在如今快速发展的商业环境中,企业不断面临挑战和机会。数字化转型不仅是一个选项,而是一个必要条件,尤其对于具有特定需求和挑战的企业来说。但究竟哪些类型的企业最适合通过RPA(Robotic Process Automation)进行数字化…...

LuatOS-SOC接口文档(air780E)-- fdb - kv数据库,掉电不丢数据

fdb.kvdb_init(name, partition) 初始化kv数据库 参数 传入值类型 解释 string 数据库名,当前仅支持env string FAL分区名,当前仅支持onchip_fdb 返回值 返回值类型 解释 boolean 成功返回true,否则返回false 例子 -- fdb库基于 flashdb , 再次表示感谢. if fdb…...

世界500强都摒弃使用FTP的真实原因

FTP是一种最早的文件传输协议,它在互联网上广泛使用,但是它也存在很多缺点和风险,导致许多世界500强企业都摒弃了使用FTP。本文将从以下几个方面来分析FTP的不足,以及世界500强企业的选择和替代方案。 FTP的缺点和风险 在安全性方…...

医院电子病历编辑器,EMRE(EMR Editor)源码

电子病历主要面向医院机构医生、护士,提供对住院病人的电子病历书写、保存、修改、打印等功能。本系统基于云端SaaS服务方式,通过浏览器方式访问和使用系统功能,提供电子病历在线制作、管理和使用的一体化电子病历解决方案,为医疗…...

分享从零开始学习网络设备配置--任务3.8 使用动态路由OSPF实现网络连通

任务描述 某公司随着规模的不断扩大,路由器的数量在原有的基础上有所增加。网络管理员发现原有的路由协议已经不适合现有的网络环境,可实施动态路由OSPF协议配置,实现网络中所有主机之间互相通信。因为动态路由OSPF协议可以实现快速收敛&…...

构建高效的同城O2O外卖系统APP:技术要点和最佳实践

时下,消费者的需求不断演变,迫使外卖服务提供商不断改进其技术和服务。本文将讨论如何构建一个高效的同城O2O(Online-to-Offline)外卖系统APP,突出了关键的技术要点和最佳实践。 一、用户界面设计 1.1 直观 简单直观…...

【残差网络ResNet:残差块输入输出形状控制】

【残差网络ResNet:残差块输入输出形状控制】 1 残差块输入输出形状控制程序2 查看经典的ResNet18模型 1 残差块输入输出形状控制程序 参考链接:https://arxiv.org/pdf/1512.03385.pdf 这是一个基本的残差块,由两层卷积组成前向传播 一层卷积…...

【编译和链接——详解】

1. 翻译环境和运行环境💻 在ANSI C的任何⼀种实现中,存在两个不同的环境。 第1种是翻译环境,在这个环境中源代码被转换为可执⾏的机器指令。 第2种是执⾏环境,它⽤于实际执⾏代码。 2. 翻译环境💻 那翻译环境是怎么将…...

【python爬虫】爬虫所需要的爬虫代理ip是什么?

目录 前言 一、什么是爬虫代理 IP 二、代理 IP 的分类 1.透明代理 2.匿名代理 3.高匿代理 三、如何获取代理 IP 1.免费代理网站 2.付费代理服务 四、如何使用代理 IP 1.使用 requests 库 2.使用 scrapy 库 五、代理 IP 的注意事项 1.代理 IP 可能存在不稳定性 2…...

酒店预订小程序制作详细步骤解析

" 随着移动设备的普及和互联网技术的不断发展,小程序成为了一个备受关注的应用领域。特别是在酒店预订行业,小程序可以为酒店带来更多的客源和方便快捷的预订服务。下面是酒店预订小程序的制作详细步骤解析。 第一步:注册登录【乔拓云】…...

Intel汇编语言程序设计(第7版)第六章编程学习过程中写的小例子

1. 根据书上的例子, 自己写的4个过程, 改了一部分 include irvine32.inc includelib irvine32.lib include msvcrt.inc includelib msvcrt.lib.data dwNum0 DWORD 15 dwNum1 DWORD 21PDWORD TYPEDEF PTR DWORD dwNumAry DWORD 25, 39, 14, 59 NumAryLen DWORD LENGTHOF dwNum…...

ElementUI之动态树+数据表格+分页

目录 一、动态树 1.1 定义 1.2 导航菜单绑定 1.3 面板内容 1.4 效果展示 二、动态表格 2.1 定义 2.2 搜索框 2.3 数据表格 2.4 分页条 2.5 功能实现 一、动态树 1.1 定义 动态树通常是指在网页或应用程序中创建可展开和折叠的树形结构,其中树的节点是动…...

ReferenceError: primordials is not defined错误解决

问题场景: 从github上拉了一个项目,想要学习一下,在起服务的时候出现了这个问题。 造成的原因: gulp 与 node 版本起冲突。 1)首先,安装 gulp,查看版本; npm install gulp -g g…...

【Element-UI】实现动态树、数据表格及分页效果

一、导言 1、引言 在现代软件开发中,动态树、数据表格以及分页效果成为了许多应用的核心需求。随着业务规模和复杂性的增加,我们往往需要展示大量的层级结构数据,并且实现交互性强且高效的操作。 动态树提供了一种组织结构清晰、可伸缩的展示…...

解决仪器掉线备忘

网络管控越来越严格,老的Mac模式连接的仪器经常断开,要么是网络没活动被断开TCP了,要么是网络波动无法保持TCP。每次重启仪器控制很麻烦,基于之前用M写http服务的基础上改进仪器接口连接。 参照之前实现http服务的逻辑 最终逻辑 …...

Java面向对象高级

文章目录 面向对象高级Object类的常用方法常用方法一(面向对象阶段)** 和 equals 的区别** 关键字native**单例设计模式(Singleton)**前情回顾(学习基础)静态修饰符Static设计模式概念开发步骤**两种实现方…...

渗透测试信息收集方法和工具分享

文章目录 一、域名收集1.OneForAll2.子域名挖掘机3.subdomainsBurte4.ssl证书查询 二、获取真实ip1.17CE2.站长之家ping检测3.如何寻找真实IP4.纯真ip数据库工具5.c段,旁站查询 三、端口扫描1.端口扫描站长工具2.masscan(全端口扫描)nmap扫描3.scanport4.端口表5.利…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中&#xff0c;理解API&#xff08;应用程序接口&#xff09;和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能&#xff0c;使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作&#xff1a;验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化&#xff1a;测试aof和aof持久化机制&#xff0c;确保数据在开启后正确恢复。 事务&#xff1a;检查事务的原子性和回滚机制。 发布订阅&#xff1a;确保消息正确传递。 2、性…...

GraphQL 实战篇:Apollo Client 配置与缓存

GraphQL 实战篇&#xff1a;Apollo Client 配置与缓存 上一篇&#xff1a;GraphQL 入门篇&#xff1a;基础查询语法 依旧和上一篇的笔记一样&#xff0c;主实操&#xff0c;没啥过多的细节讲解&#xff0c;代码具体在&#xff1a; https://github.com/GoldenaArcher/graphql…...

客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践

01技术背景与业务挑战 某短视频点播企业深耕国内用户市场&#xff0c;但其后台应用系统部署于东南亚印尼 IDC 机房。 随着业务规模扩大&#xff0c;传统架构已较难满足当前企业发展的需求&#xff0c;企业面临着三重挑战&#xff1a; ① 业务&#xff1a;国内用户访问海外服…...

门静脉高压——表现

一、门静脉高压表现 00:01 1. 门静脉构成 00:13 组成结构&#xff1a;由肠系膜上静脉和脾静脉汇合构成&#xff0c;是肝脏血液供应的主要来源。淤血后果&#xff1a;门静脉淤血会同时导致脾静脉和肠系膜上静脉淤血&#xff0c;引发后续系列症状。 2. 脾大和脾功能亢进 00:46 …...