【Oracle】对表的的分析

2024-01-15 10:38
文章标签 oracle 分析 对表

本文主要是介绍【Oracle】对表的的分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在我看来分析数据库表是为了获取表的统计信息,以便数据库在对表进行查询等操作的时候选择正确的执行路径,那么什么时候需要对数据库表进行分析呢?在我看来主要是下面的情况:

1.数据以分区交换的方式加载到数据库中,并且在加载入库后不再改变。

    这种情况最好是在交换之后再进行分析,因为如果先分析临时表之后再交换,那么交换之后临时表中的分析信息只是作为分区表的分区信息交换进去,而分区表的全局信息并没有更新。分区表的全局信息可以在这两个表(表与索引)中查到:

SELECT * FROM USER_TABLES;
SELECT * FROM USER_INDEXES;

在未分析之前大多数字段是空的,你可以使用下面的语句对表进行分析:

ANALYZE TABLE TABLENAME COMPUTE STATISTICS;
ANALYZE INDEX | CLUSTER INDEXNAME ESTIMATE STATISTICS;

或者使用工具包(对于分区表推荐使用工具包,可以满足不同的需求,得到整个分区表或者单个分区的数据,在不同级别上对分区表进行统计,但是不能收集CHAINED ROWS和CLUSTER TABLE的信息):

DBMS_STATS.GATHER_SCHEMA_STATS(USER, ESTIMATE_PERCENT => 100, CASCADE => TRUE);
DBMS_STATS.GATHER_TABLE_STATS(USER, TABLENAME, DEGREE => 4, CASCADE => TRUE);

单个分区的分区信息可以在下面的两个表 (表与索引) 中查到:

SELECT * FROM USER_TAB_PARTITIONS;
SELECT * FROM USER_IND_PARTITIONS;

全局的分析信息在跨分区查询的时候显得尤为重要,这也是推荐我们在进行分区交换之后再对表进行分析的原因。

2.第二种需要对表进行分析的情况是:数据存在表中并且经常改变。


这篇关于【Oracle】对表的的分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/608608

相关文章

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

PLsql Oracle 下载安装图文过程详解

《PLsqlOracle下载安装图文过程详解》PL/SQLDeveloper是一款用于开发Oracle数据库的集成开发环境,可以通过官网下载安装配置,并通过配置tnsnames.ora文件及环境变... 目录一、PL/SQL Developer 简介二、PL/SQL Developer 安装及配置详解1.下

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

oracle如何连接登陆SYS账号

《oracle如何连接登陆SYS账号》在Navicat12中连接Oracle11g的SYS用户时,如果设置了新密码但连接失败,可能是因为需要以SYSDBA或SYSOPER角色连接,解决方法是确保在连接... 目录oracle连接登陆NmOtMSYS账号工具问题解决SYS用户总结oracle连接登陆SYS账号

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp

查询Oracle数据库表是否被锁的实现方式

《查询Oracle数据库表是否被锁的实现方式》本文介绍了查询Oracle数据库表是否被锁的方法,包括查询锁表的会话、人员信息,根据object_id查询表名,以及根据会话ID查询和停止本地进程,同时,... 目录查询oracle数据库表是否被锁1、查询锁表的会话、人员等信息2、根据 object_id查询被

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用