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

1.问题

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

2.原因分析

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

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

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

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

3.解决方案

更新统计信息

复制代码
ANALYZE TABLE 你的表 COMPUTE STATISTICS;
相关推荐
bksczm6 小时前
从 “什么是 MySQL“ 到库与表的完整操作(MySQL基础篇)
linux·数据库·mysql
风123456789~6 小时前
【Oracle专栏】解决clob+dblink 插入报错 ORA-22992
数据库·oracle
后台模板学习6 小时前
学习的心态高频面试题
java·数据库·学习
redreamSo7 小时前
想给产品加一个 AI 搜索,是上向量数据库还是用 MongoDB 就够了?
数据库·人工智能·mongodb
APItesterCris8 小时前
告别人工盯品!借助 Open‑Claw 快速搭建电商商品全自动监控与数据分析系统(完整实操代码)
java·大数据·前端·数据库
SKH.8 小时前
网络(5)数据库
jvm·数据库
kyrie_sakura9 小时前
MySQL数据库学习笔记3--关联(联合)查询
数据库·学习·mysql
陈皮波比茶9 小时前
计算机二级MySQL笔记
java·数据库
行业研究员9 小时前
腾讯云数据库 PostgreSQL 让相关子查询跑上多核
数据库·postgresql·腾讯云