|
|
仗义的登山鞋 · matpool 行业动态 | ...· 2 年前 · |
|
|
怕老婆的可乐 · MSB4018 ...· 2 年前 · |
|
|
逆袭的蘑菇 · 编辑时使用Object.assign({}, ...· 2 年前 · |
|
|
英姿勃勃的椰子 · 高性能网络通信框架Java ...· 3 年前 · |
|
|
不拘小节的水煮鱼 · pyscenic的转录因子分析结果展示之5种 ...· 3 年前 · |
我已经在我的表上创建了几个索引和主键索引,当我运行select查询时,第一次显示结果需要大约30秒的时间。
但在第一次执行后,当我再次运行查询时,它在不到2秒的时间内给出了结果,在随后的执行中总是一样的。
当我在网上检查某个地方时,我发现由于索引数据库缓存,执行速度更快,因此我使用
alter system flush buffer_cache;
清除数据库缓存,然后再次执行查询,第一次显示结果需要30秒,第二次执行只需要2秒显示结果。
我是一个新的索引,这是索引的工作方式,还是我有任何其他方法来工作我的查询,将显示结果在2秒的所有时间。
发布于 2021-02-15 22:57:09
它与索引或索引缓存无关。它与缓冲区缓存有关,您正在清除缓冲区缓存。无论何时执行查询,oracle都会检查缓冲区缓存,以查看缓存中是否已经存在所需的内容。如果在缓存中找到它,他可以避免从磁盘进行昂贵的物理读取。如果未在缓存中找到,则从磁盘读取它(速度慢、开销大),并将其放入缓存中。下一次需要数据时,只需从缓存中提取(快速)即可。但是,当您清除缓存时,您会强制它返回到物理磁盘读取。停止刷新缓冲区缓存,数据库将使用正常的缓存数据“工作集”进行“稳定”。
https://stackoverflow.com/questions/66210181
复制相似问题
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287