Oracle SQL查询提高了第二次和第三次执行的性能
我们正在分析Oracle 12c数据库上的sql语句。我们注意到,通过多次运行,下面的语句得到了改进。如何解释它通过第二次和第三次执行来改进Oracle SQL查询提高了第二次和第三次执行的性能,oracle,sql-tuning,database-tuning,Oracle,Sql Tuning,Database Tuning,我们正在分析Oracle 12c数据库上的sql语句。我们注意到,通过多次运行,下面的语句得到了改进。如何解释它通过第二次和第三次执行来改进 SELECT COUNT (*) FROM asset WHERE ( ( (status NOT IN ( 'x1', 'x2', 'x3')) AND ( (siteid = 'xxx'))) AND (EXISTS (SELE
SELECT COUNT (*)
FROM asset
WHERE ( ( (status NOT IN ( 'x1', 'x2', 'x3'))
AND ( (siteid = 'xxx')))
AND (EXISTS
(SELECT siteid
FROM siteauth a, groupuser b
WHERE a.groupname = b.groupname
AND b.userid = 'xxx'
AND a.siteid = asset.siteid)))
AND ( (assetnum LIKE '5%'));
- 第一轮:24秒李>
- 第二轮:17秒
- 第三轮:7秒
- 第四轮:7秒
- 通过使用结果现金进行调整:0003秒
数据库已“预热”。Oracle将数据从光盘提取到内存中。第二次运行查询时,数据会在内存中找到,因此无需读取光盘。导致更快的查询执行。
数据库已“预热”。Oracle默认情况下不缓存查询结果,但缓存查询使用的数据块。此外,12c还具有“自适应执行计划”和“基数反馈”等功能,即使未重新计算表统计信息,也可能在执行之间强制执行执行计划更改。Oracle默认情况下不缓存查询结果,而是缓存查询使用的数据块。此外,12c还具有“自适应执行计划”和“基数反馈”等功能,即使未重新计算表统计信息,这些功能也可能在执行之间强制执行执行计划更改。在运行查询第二、第三等之前,您是否刷新了共享池和缓冲区缓存?Oracle缓存查询结果。自适应查询优化:在运行查询第二、第三等之前,是否刷新了共享池和缓冲区缓存?Oracle缓存查询结果。自适应查询优化:如何解释第三次执行时的改进?如何解释第三次执行时的改进?