iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >ORACLE数据表分析
  • 522
分享到

ORACLE数据表分析

2024-04-02 19:04:59 522人浏览 薄情痞子
摘要

一、性能数据的存储过程: 性能数据的收集包含这样几个存储过程: GATHER_INDEX_STATS:分析索引信息 GATHER_TABLE_STATS:分析表信息,当ca

一、性能数据的存储过程:

性能数据的收集包含这样几个存储过程:

GATHER_INDEX_STATS:分析索引信息 
GATHER_TABLE_STATS:分析表信息,当cascade为true时,分析表、列(索引)信息 
GATHER_SCHEMA_STATS:分析方案信息 
GATHER_DATABASE_STATS:分析数据库信息 
GATHER_SYSTEM_STATS:分析系统信息

二、GATHER_TABLE_STATS: 分析表、字段和索引:

我们分析时最常用到的就是GATHER_TABLE_STATS,dbms_stats能良好地估计统计数据(尤其是针对较大的分区表),并能获得更好的统计结果,最终制定出速度更快的sql执行计划。

procedure gather_table_stats
    (ownname varchar2, tabname varchar2, partname varchar2 default null,
     estimate_percent number default DEFAULT_ESTIMATE_PERCENT,
     block_sample boolean default FALSE,
     method_opt varchar2 default DEFAULT_METHOD_OPT,
     degree number default to_degree_type(get_param('DEGREE')),
     granularity varchar2 default  DEFAULT_GRANULARITY,
     cascade boolean default DEFAULT_CASCADE,
     stattab varchar2 default null, statid varchar2 default null,
     statown varchar2 default null,
     no_invalidate boolean default
       to_no_invalidate_type(get_param('NO_INVALIDATE')),
     stattype varchar2 default 'DATA',
     force boolean default FALSE,
     -- the context is intended for internal use only.
     context dbms_stats.CContext default null);

method_opt:决定histograms直方图信息是怎样被统计的。method_opt的取值如下(默认值为FOR ALL COLUMNS SIZE AUTO):

  • FOR ALL COLUMNS:统计所有列的HISTOGRAMS.
  • FOR ALL INDEXED COLUMNS:统计所有INDEXED列的HISTOGRAMS.
  • FOR ALL HIDDEN COLUMNS:统计你看不到列的HISTOGRAMS
  • FOR COLUMNS <LIST> SIZE <INTEGER> | REPEAT | AUTO |
  • INTEGER指的直方图的BUCKETS数量,取值范围为[1,254]。
  • REPEAT上次统计过的HISTOGRAMS。
  • AUTO:oracle根据列数据的分布及相关列的访问量来决定收集直方图的列。
  • SKEWONLY:ORACLE 根据列的数据分布来决定哪些列收集直方图

在 gather_table_stats 存储过程的所有参数中,除了 ownname 和 tabname,其他的参数都有默认值。

dbms_stats.gather_table_stats(ownname=>'TEST',tabname=>'T1');

三、DBMS_STATS 包管理功能

1、查找表最后执行分析的日期

select table_name,num_rows,blocks,last_analyzed from all_tables where table_name='WORK_LIST';

2、其他存储过程

  • CREATE_STAT_TABLE :创建分析数据表
  • DROP_STAT_TABLE: 删除分析数据表
  • GATHER_TABLE_STATS:执行分析表
  • GET_TABLE_STATS :获取分析数据
  • SET_TABLE_STATS : 设置分析数据
  • EXPORT_TABLE_STATS: 导出分析数据
  • IMPORT_TABLE_STATS: 导入分析数据
  • LOCK_TABLE_STATS :定分析数据
  • UNLOCK_TABLE_STATS :解锁分析数据
  • RESTORE_TABLE_STATS: 恢复分析数据
  • delete_table_stats :删除表统计信息

四、自动收集CBO的统计信息

从Oracle Database 10g开始,Oracle在建库后就默认创建了一个名为GATHER_STATS_JOB的定时任务,用于自动收集CBO的统计信息。

这个自动任务默认情况下在工作日晚上10:00-6:00和周末全天开启。调用DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC收集统计信息。 
该过程首先检测统计信息缺失和陈旧的对象。然后确定优先级,再开始进行统计信息。

可以通过以下查询这个JOB的运行情况:

select * from Dba_Scheduler_Jobs where JOB_NAME ='GATHER_STATS_JOB'

其实同在10点运行的Job还有一个AUTO_SPACE_ADVISOR_JOB,然而这个自动化功能已经影响了很多系统的正常运行,晚上10点对于大部分生产系统也并非空闲时段。 
而自动分析可能导致极为严重的闩锁竞争,进而可能导致数据库Hang或者Crash。

所以建议最好关闭这个自动统计信息收集功能

方法之一:

exec dbms_scheduler.disable('SYS.GATHER_STATS_JOB');
--恢复自动分析:
exec dbms_scheduler.enable('SYS.GATHER_STATS_JOB');

方法二:

alter system set "_optimizer_autostats_job"=false scope=spfile;
alter system set "_optimizer_autostats_job"=true scope=spfile;

Pfile可以直接修改初始化参数文件,重新启动数据库。

到此这篇关于ORACLE数据表分析的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: ORACLE数据表分析

本文链接: https://www.lsjlt.com/news/148122.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ORACLE数据表分析
    一、性能数据的存储过程: 性能数据的收集包含这样几个存储过程: GATHER_INDEX_STATS:分析索引信息 GATHER_TABLE_STATS:分析表信息,当ca...
    99+
    2024-04-02
  • oracle数据库中表的操作示例分析
    这篇文章主要为大家展示了“oracle数据库中表的操作示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“oracle数据库中表的操作示例分析”这篇文章吧。1...
    99+
    2024-04-02
  • 分析Oracle表数据库高水位及shrink操作
    这篇文章主要介绍“分析Oracle表数据库高水位及shrink操作”,在日常操作中,相信很多人在分析Oracle表数据库高水位及shrink操作问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,...
    99+
    2024-04-02
  • ECharts数据图表实例分析
    这篇文章主要介绍“ECharts数据图表实例分析”,在日常操作中,相信很多人在ECharts数据图表实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ECharts数据图表实例分析”的疑惑有所帮助!接下来...
    99+
    2023-06-27
  • Oracle数据库分析函数用法
    目录1、什么是窗口函数?2、窗口函数——开窗3、一些分析函数的使用方法4、OVER()参数——分组函数5、OVER()参数——排序函数1、什么是窗口函数? 窗口函数也属于分析函数。O...
    99+
    2024-04-02
  • Oracle表分区实例分析
    这篇文章主要介绍了Oracle表分区实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Oracle表分区实例分析文章都会有所收获,下面我们一起来看看吧。一、 表空间及分区表的概念表空间:是一个或多个数据文件...
    99+
    2023-06-30
  • Pandas数据分析之pandas数据透视表和交叉表
    目录前言整理透视 pivot 聚合透视 Pivot Table 聚合透视高级操作交叉表crosstab()数据融合melt()数据堆叠 stack前言 panda...
    99+
    2024-04-02
  • Oracle相关数据字典分析
    本篇内容主要讲解“Oracle相关数据字典分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle相关数据字典分析”吧!问题描述:alert日志发现报错主...
    99+
    2024-04-02
  • Oracle表空间数据库文件收缩的示例分析
    这篇文章主要介绍了Oracle表空间数据库文件收缩的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。我们经常会遇到数据库磁盘空间爆满的...
    99+
    2024-04-02
  • 数据分析处理库Pandas——数据透视表
    数据 按指定的行列值显示 求和 按行求和 按列求和 数据 求平均 备注:按性别计算每个等级船票的平均价格。 备注:每个等级船舱中每种性别获救的平均值,也就是获救的比例。 备注:每种性别未成年人获救的平均值...
    99+
    2023-01-31
    数据 透视 Pandas
  • oracle怎么根据分区表更新数据
    要根据分区表更新数据,可以使用以下步骤:1. 首先,确定要更新的分区表和更新的条件。2. 使用UPDATE语句来更新数据,语法如下:...
    99+
    2023-08-30
    oracle
  • oracle怎么导出部分表数据
    Oracle数据库可以使用expdp命令来导出部分表数据。以下是导出部分表数据的步骤:1. 打开命令行或终端窗口,登录到Oracle数据库。2. 运行以下命令来导出部分表数据:```expdp username/password@ser...
    99+
    2023-08-11
    oracle
  • oracle中分表之表分区的示例分析
    这篇文章将为大家详细讲解有关oracle中分表之表分区的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。此文从以下几个方面来整理关于分区表的概念及操作: ...
    99+
    2024-04-02
  • oracle 数据库启动阶段分析
    Oracle Server主要由两部分组成:Instance 和Database 。Instance 是指一组后台进程/线程和一块共享内存区域,而 Database是指存储在磁盘上的一组物理文件。本文由数据...
    99+
    2024-04-02
  • 数据分析:消费者数据分析
    数据分析:消费者数据分析 作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习...
    99+
    2023-09-01
    数据分析 数据挖掘 python 开发语言
  • SQL Server数据库分区分表的示例分析
    这篇文章主要介绍SQL Server数据库分区分表的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、 需求说明将数据库Demo中的表按照日期字段进行水平分区分表。要求数据文件按一年一个文件存储,且...
    99+
    2023-06-14
  • oracle如何向分区表写入数据
    要向分区表写入数据,您可以使用INSERT语句来执行。以下是一个示例:```sqlINSERT INTO partitioned_t...
    99+
    2023-08-23
    oracle
  • oracle数据表转换为mysql数据表
    oracle数据表转换为mysql数据表,或者反过来,我们可以借助navica的工具 1.打开navicat的工具->数据传输 2.选择源数据库以及目标数据库 目标可以选择数据库也可以选择文件,目标数据库需要提前建好表,这里是选择文件,...
    99+
    2023-08-16
    oracle mysql 数据库
  • Oracle expdp导出多表或表中的部分数据
    环境:Oracle database 11gR2,  RHEL 5.4...
    99+
    2023-06-06
  • word如何做图表数据分析图
    Word是一款文字处理软件,通常用于创建文档、设计报告和编辑文章。虽然Word并不是专门用于数据分析和制作图表的软件,但它仍然提供了...
    99+
    2023-09-09
    word
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作