|
|
纯真的松球 · BMO银行高息存款限时特惠!利息高达4.8% ...· 3 月前 · |
|
|
爽快的冰棍 · 親親動物月2025 | 香港海洋公園· 4 月前 · |
|
|
伤情的刺猬 · 为什么韩剧男主角越来越喜欢展现身材· 1 年前 · |
|
|
任性的炒面 · 【问题】Failed to execute ...· 1 年前 · |
|
|
会搭讪的卤蛋 · Python os.makedirs() ...· 1 年前 · |
我已经在我的表上创建了几个索引和主键索引,当我运行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
|
|
爽快的冰棍 · 親親動物月2025 | 香港海洋公園 4 月前 |
|
|
伤情的刺猬 · 为什么韩剧男主角越来越喜欢展现身材 1 年前 |