问题描述
我想知道缓冲缓存中存储了多少数据?比如说,如果我在服务器上有大量的RAM ,并且如果我按比例增加SGA ,那么我的缓冲区缓存的数据量是否会接近分配的RAM ?
什么决定了缓冲区高速缓存中可以缓存的数据量?是否可以手动设置该值?
另外,我最近也通过了这个链接https://oracle-base.com/articles/12c/full-database-caching-mode-12cr1提到了完整数据库缓存,表示它将缓存整个数据库,在这种情况下,它是否缓存了与分配的RAM量有关的数据?
什么决定了缓冲区高速缓存中可以缓存的数据量?是否可以手动设置该值?
另外,我最近也通过了这个链接https://oracle-base.com/articles/12c/full-database-caching-mode-12cr1提到了完整数据库缓存,表示它将缓存整个数据库,在这种情况下,它是否缓存了与分配的RAM量有关的数据?
专家解答
所有的缓存机制(缓冲缓存、大表缓存、全数据库缓存)都完全在你*的控制之下。
如果您的服务器有128G的RAM ,但您将缓冲缓存设置为2G (db_cache_大小) ...那么我们将只使用2G。
如果您使用的是自动内存管理(memory_tget或sga_tget) ,那么我们也会受到它的约束。因此,如果您将sga_tge设置为64G ,那么缓冲区高速缓存可以增加到几乎这个大小(剩余的高速缓存用于共享池等) ,但是除非需要,否则我们不会增加缓冲区高速缓存。因此,如果您只读取了10G的数据,我们不需要60G的缓冲缓存
希望这个能帮上忙。
如果您的服务器有128G的RAM ,但您将缓冲缓存设置为2G (db_cache_大小) ...那么我们将只使用2G。
如果您使用的是自动内存管理(memory_tget或sga_tget) ,那么我们也会受到它的约束。因此,如果您将sga_tge设置为64G ,那么缓冲区高速缓存可以增加到几乎这个大小(剩余的高速缓存用于共享池等) ,但是除非需要,否则我们不会增加缓冲区高速缓存。因此,如果您只读取了10G的数据,我们不需要60G的缓冲缓存
希望这个能帮上忙。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




