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.利…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
