Oracle系列---【两个环境,表结构一致,数据量一致,索引也一致,为什么同样的sql执行时间却不一致?】

1.问题

两个环境,表结构一致,数据量一致,索引也一致,为什么同样的sql执行时间却不一致?

2.原因分析

通过执行计划,发现差异很大:

复制代码
# 查看执行计划
EXPLAIN 你的sql

通过dbeaver工具查看DDL上面的那个Statistics的值,发现两个环境的不一致。由此可以断定是统计信息出了问题。

为什么会这样?这是因为在oracle建立索引或者插入数据时,优化执行器没有统计到新数据,所以才导致了这个问题。oracle存数据是按块存的,隔一段时间刷新一下统计信息。mysql没有这个问题,mysql一般按行存,直接就更新了。

3.解决方案

更新统计信息

复制代码
ANALYZE TABLE 你的表 COMPUTE STATISTICS;
相关推荐
l1t12 分钟前
DeepSeek总结的DuckLake 入门
数据库
Joseph Cooper22 分钟前
RAG 与 AI Agent:智能体真的需要检索增强生成吗?
数据库·人工智能·ai·agent·rag·上下文工程
light blue bird25 分钟前
主子端台二分法任务汇总组件
前端·数据库·.net·桌面端winform
DevilSeagull1 小时前
MySQL(2) 客户端工具和建库
开发语言·数据库·后端·mysql·服务
小李来了!1 小时前
Navicate/plsql连接Oracle数据库教程
数据库·oracle
苍煜1 小时前
慢SQL优化实战教学
java·数据库·sql
zhaoyong2222 小时前
MySQL 存储过程中字符集与排序规则不匹配导致查询性能下降的解决方案
jvm·数据库·python
sinat_383437362 小时前
golang如何从Python转型Go开发_golang从Python转型Go开发攻略
jvm·数据库·python
远洪2 小时前
claude code 国内安装使用
数据库·mysql
雨辰AI2 小时前
SpringBoot3 + 人大金仓 V9 微服务监控实战|Prometheus+Grafana+SkyWalking 全链路监控
数据库·后端·微服务·grafana·prometheus·skywalking