一个 Oracle 11g 上的 SELECT 语句,原来需要 1-2ms,现在需要 80-150ms 了

2023-09-08 15:37:44 +08:00
 liuzhedash
琢磨了一上午没找到问题,线索如下:

1. SQL 本身很简单,where 条件就一个 id ,索引是加好了的

SELECT * FROM DRIVER WHERE id = '身份证号码'

explain plan 也看不出什么东西,已经是 index(unique scan)了,cost 都是个位数,也试了重建表统计

EXEC DBMS_STATS.gather_table_stats('DRIVER')

重建后几乎无变化

2. Oracle 所在服务器基本是空载的,32core 的服务器 load average 基本不超过 1.0

3. 这个 DRIVER 表会每 5 分钟和上游同步一次,大概几百条数据会删除然后重新插入

目前在试着清空表,重新导入数据。

请大家帮忙分析下,我还真是没招了。
598 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/972065

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX