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.利…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...
k8s从入门到放弃之Pod的容器探针检测
k8s从入门到放弃之Pod的容器探针检测 在Kubernetes(简称K8s)中,容器探测是指kubelet对容器执行定期诊断的过程,以确保容器中的应用程序处于预期的状态。这些探测是保障应用健康和高可用性的重要机制。Kubernetes提供了两种种类型…...
初探用uniapp写微信小程序遇到的问题及解决(vue3+ts)
零、关于开发思路 (一)拿到工作任务,先理清楚需求 1.逻辑部分 不放过原型里说的每一句话,有疑惑的部分该问产品/测试/之前的开发就问 2.页面部分(含国际化) 整体看过需要开发页面的原型后,分类一下哪些组件/样式可以复用,直接提取出来使用 (时间充分的前提下,不…...
GB/T 43887-2024 核级柔性石墨板材检测
核级柔性石墨板材是指以可膨胀石墨为原料、未经改性和增强、用于核工业的核级柔性石墨板材。 GB/T 43887-2024核级柔性石墨板材检测检测指标: 测试项目 测试标准 外观 GB/T 43887 尺寸偏差 GB/T 43887 化学成分 GB/T 43887 密度偏差 GB/T 43887 拉伸强度…...
深入理解 C++ 左值右值、std::move 与函数重载中的参数传递
在 C 编程中,左值和右值的概念以及std::move的使用,常常让开发者感到困惑。特别是在函数重载场景下,如何合理利用这些特性来优化代码性能、确保语义正确,更是一个值得深入探讨的话题。 在开始之前,先提出几个问题&…...
