V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
LeeReamond
V2EX  ›  问与答

多次执行同一 SQL 命令,执行速度却越来越慢,可能是什么原因导致的?

  •  
  •   LeeReamond · Dec 30, 2020 · 664 views
    This topic created in 1944 days ago, the information mentioned may be changed or developed.

    如题,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 多秒。

    另外应该也不是系统问题,测试平台系统是空载的 这个可能是什么原因导致的?有没有大佬指点一下。按理说重复执行有缓存速度应该更快才对啊。

    目前已经在多平台测试过,应该不是客户端的问题,不同编程语言接口获取数据时都有这个问题。

    =======================

    另外还有一个怪事,还有一张容量为一亿行左右的,结构和上述完全一样的另外一张表,该表中执行周期更长(获取结果条目数更多)的命令,平均执行时间却比这个获取条目数短的命令要快,怪而又怪。

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5575 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 07:05 · PVG 15:05 · LAX 00:05 · JFK 03:05
    ♥ Do have faith in what you're doing.