ORACLE 执行查询语句慢(不走对应索引)

 
1. 索引未被创建或未正确创建


确保为查询中涉及的列创建了索引。例如,如果你经常需要按column_name列进行查询,确保已经为该列创建了索引,索引创建语句

CREATE INDEX idx_column_name ON table_name(column_name);

2、索引不可用


原因:索引可能被标记为不可用(UNUSABLE)通常是由于索引重建失败或数据导入操作导致的。
解决方法:检查索引状态并重建索引
检查索引状态

SELECT INDEX_NAME, STATUS FROM USER_INDEXES WHERE TABLE_NAME = 'TABLE_NAME'; 

如果索引不可用,重建索引

ALTER INDEX INDEX_NAME REBUILD;

3、统计信息不准确

原因:
Oracle 优化器依赖统计信息来决定执行计划。如果表的统计信息不准确或过时,优化器可能会错误地选择不使用索引。

所以创建索引并且执行语句没有问题,则 可以使用DBMS_STATS包来收集最新的统计信息:
解决方法:  

EXEC DBMS_STATS.GATHER_TABLE_STATS('SCHEMA_NAME', 'TABLE_NAME');
EXEC DBMS_STATS.GATHER_TABLE_STATS('SYMDR', 'LAB_REPORT_INFO');

4、如果收集最新的统计信息执行报错

错误信息:

ORA-20005: object statistics are locked (stattype = ALL) 则看是否有死锁

SELECT s.sid, s.serial#, l.object_id, o.object_name, l.session_id blocking_sid
FROM v$locked_object l
JOIN dba_objects o ON l.object_id = o.object_id
JOIN v$session s ON l.session_id = s.sid
WHERE o.object_type = 'LAB_REPORT_INFO';

5、终止会话

如果找到死锁可以使用如下命令终止会话

ALTER SYSTEM KILL SESSION 'sid,serial#';

 6、强制更新统计信息

如果确定没有其他会话正在使用统计信息,或者已经终止了阻塞会话,可以尝试强制更新统计信息:


BEGIN
  DBMS_STATS.GATHER_TABLE_STATS(
    ownname       => 'OWNER',
    tabname       => 'TABLE_NAME',
    estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
    method_opt    => 'FOR ALL COLUMNS SIZE AUTO',
    cascade       => TRUE,
    force         => TRUE);
END;
/
BEGIN
  DBMS_STATS.GATHER_TABLE_STATS(
    ownname       => 'SYMDR',
    tabname       => 'LAB_REPORT_INFO',
    estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
    method_opt    => 'FOR ALL COLUMNS SIZE AUTO',
    cascade       => TRUE,
    force         => TRUE);
END;
/

7、 检查执行计划

使用 EXPLAIN PLAN 或 DBMS_XPLAN 查看查询的执行计划,了解优化器为何选择不使用索引: 

EXPLAIN PLAN FOR SELECT * FROM TABLE_NAME WHERE COLUMN_NAME = 'VALUE';
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

EXPLAIN PLAN FOR
select * from lab_report_info where org_code='XX'   and request_no='XX'      and local_id='XX' ; 
SELECT * FROM table(DBMS_XPLAN.DISPLAY());

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/71631.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

r1-reasoning-rag:一种新的 RAG 思路

最近发现了一个开源项目,它提供了一种很好的 RAG 思路,它将 DeepSeek-R1 的推理能力结合 Agentic Workflow 应用于 RAG 检索 项目地址 https://github.com/deansaco/r1-reasoning-rag.git 项目通过结合 DeepSeek-R1、Tavily 和 LangGraph,实现…

服务器硬件配置统计

服务器型号和SN # dmidecode -t system | grep -E "Product Name|Serial Number" | awk -F: {print $2} PowerEdge R7515 4567CPU型号和物理CPU数量 echo "$(lscpu | grep "Model name" | cut -d : -f2 | sed s/^ *//) x $(lscpu | grep "Soc…

Hadoop、Spark、Flink Shuffle对比

一、Hadoop的shuffle 前置知识: Map任务的数量由Hadoop框架自动计算,等于分片数量,等于输入文件总大小 / 分片大小,分片大小为HDFS默认值128M,可调 Reduce任务数由用户在作业提交时通过Job.setNumReduceTasks(int)设…

Docker的常用镜像

Docker的常用镜像命令主要包括镜像的查看、搜索、拉取、删除、构建等操作,以下是综合多个来源的总结: 一、基础镜像操作 查看本地镜像 docker images• 显示所有本地镜像,包含仓库名(REPOSITORY)、标签(TAG…

车载以太网测试-3【Wireshark介绍】

1 摘要 Wireshark 是一款开源的网络协议分析工具,广泛用于网络故障排查、协议分析、网络安全检测等领域。它能够捕获网络数据包,并以详细的、可读的格式显示这些数据包的内容。广泛应用于车载网络测试,是车载网络测试工程师必须掌握的工具。…

基于跨模态地图学习的视觉语言导航

前言 本工作开展的背景: 人类和其他物种构建类似地图的环境表示来完成寻路: (1)当人类只使用现成的驾驶或步行路径到达目标时,构建认知地图和获取空间知识的能力就会下降; (2)另…

nodejs关于后端服务开发的探究

前提 在当前的环境中关于web server的主流开发基本上都是java、php之类的,其中java spring系列基本上占了大头,而python之流也在奋起直追,但别忘了nodejs也是可以做这个服务的,只是位置有点尴尬,现在就来探究下nodejs…

Ubuntu20.04本地配置IsaacGym Preview 4的G1训练环境(一)

Ubuntu20.04本地配置IsaacGym Preview 4的G1训练环境 配置conda虚拟环境安装pytorch、cuda和cudnn安装IsaacGym Preview 4配置rsl_rl配置unitree_rl_gym配置unitree_sdk2py 写在前面,要求完成anaconda配置,若没完成,请参考本人其余博客&#…

RangeError: Maximum call stack size exceeded

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、…

八卡5090服务器首发亮相!

AI 人工智能领域热度居高不下。OpenAI 的 GPT - 4 凭强悍语言处理能力,在内容创作、智能客服等领域广泛应用。清华大学团队的 DeepSeek 大模型在深度学习训练优势突出,正促使各行业应用端算力需求向推理主导转变,呈爆发式增长 。 随着 DeepS…

计算机视觉|Swin Transformer:视觉 Transformer 的新方向

一、引言 在计算机视觉领域的发展历程中,卷积神经网络(CNN) 长期占据主导地位。从早期的 LeNet 到后来的 AlexNet、VGGNet、ResNet 等,CNN 在图像分类、目标检测、语义分割等任务中取得了显著成果。然而,CNN 在捕捉全…

【Leetcode 每日一题】2597. 美丽子集的数目

问题背景 给你一个由正整数组成的数组 n u m s nums nums 和一个 正 整数 k k k。 如果 n u m s nums nums 的子集中,任意两个整数的绝对差均不等于 k k k,则认为该子数组是一个 美丽 子集。 返回数组 n u m s nums nums 中 非空 且 美丽 的子集数…

常见Web应用源码泄露问题

文章目录 前言一、常见的源码泄露漏洞git源码泄露SVN源码泄露DS_Store文件泄漏网站备份压缩文件泄露WEB-INF/web.xml泄露CVS泄露.hg源码泄露Bazaar/bzr泄露.swp文件泄露 前言 在Web应用方面对于安全来说,可能大家对SQL注入、XSS跨站脚本攻击、文件上传等一些漏洞已…

记录一次wifi版有人物联串口服务器调试经过

1、首先买了一个华为的wifi路由器,连接上以后,设置好网络名字和wifi密码 2、用网线连接串口服务器,通过192.168.1.1登录,进行配置 找到无线客户端配置,先在基本配置中打开5G配置,然后再去5.8G配置中设置 …

Android 平台架构系统启动流程详解

目录 一、平台架构模块 1.1 Linux 内核 1.2 硬件抽象层 (HAL) 1.3 Android 运行时 1.4 原生 C/C 库 1.5 Java API 框架 1.6 系统应用 二、系统启动流程 2.1 Bootloader阶段 2.2 内核启动 2.3 Init进程(PID 1) 2.4 Zygote与System Serv…

【Windows下Gitbook快速入门使用】

Windows下Gitbook快速入门使用 1 工具安装1.1 Node.js下载安装1.1 环境变量1.2 npm配置1.3 安装gitbook 2 gitbook使用2.1 gitbook 无法执行2.2 gitbook常用命令 Gitbook是一个软件,使用Git和Markdown来编排书本; GitBook helps you pushlish beautiful …

RK3588V2--HYM8563TS RTC 实时时钟适配移植

1. 什么是RTC RTC(Real-Time Clock,实时时钟)是一种电子设备或芯片,它用于保持当前时间和日期,即使系统关闭或断电也能持续计时。RTC 通常用于计算机、嵌入式系统、物联网设备等需要精确时间管理的场景。 1.1 RTC 的…

MHA集群

一.MHA集群 MHA master high avavibility 主服务器高可用 如上图所示,我们之前说过,如果在主从复制架构中主服务器出现故障,就需要我们将从服务器作为主服务器,等故障的主服务器修复好之后,再将修好的主服务器作为从服…

10 【HarmonyOS NEXT】 仿uv-ui组件开发之Avatar头像组件开发教程(一)

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! 目录 第一篇:Avatar 组件基础概念与设计1. 组件概述2. 接口设计2.1 形状类型定义2.2 尺寸类型定义2.3 组件属性接口 3. 设计原则4. 使用…

微信小程序+SpringBoot的单词学习小程序平台(程序+论文+讲解+安装+修改+售后)

感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,我会一一回复,希望帮助更多的人。 系统背景 (一)社会需求背景 在全球化的大背景下,英语作为国际…