多次执行同一 SQL 命令,执行速度却越来越慢,可能是什么原因导致的?
資深大佬 : LeeReamond 0
如题,Oracle 平台,单库容量三千万,未分区。
执行一个获取十万条左右的命令,逻辑非常单纯,大概像这样
SELECT "SCOTT"."SCORE".* FROM SCOTT.SCORE WHERE CAR_ID = 10000 AND TIMESTAMP BETWEEN TO_DATE( '2010-01-01', 'YYYY-MM-DD' ) AND TO_DATE( '2020-01-01', 'YYYY-MM-DD' )
其中 CAR_ID 和 TIMESTAMP 建有唯一索引,TIMESTAMP 本身有普通索引
比较奇怪的是,执行这个命令,初次获取时间只要 0.5 秒左右,而之后充分执行,获取时间却飘忽不定,在 5 到 20 秒之间随机波动,最长的一次跑了 40 多秒。
另外应该也不是系统问题,测试平台系统是空载的 这个可能是什么原因导致的?有没有大佬指点一下。按理说重复执行有缓存速度应该更快才对啊。
目前已经在多平台测试过,应该不是客户端的问题,不同编程语言接口获取数据时都有这个问题。
=======================
另外还有一个怪事,还有一张容量为一亿行左右的,结构和上述完全一样的另外一张表,该表中执行周期更长(获取结果条目数更多)的命令,平均执行时间却比这个获取条目数短的命令要快,怪而又怪。
大佬有話說 (0)