我试图创建一个包含数百万个数据的表,但是出现以下错误。
SQL Error: ORA-00379: no free buffers available in buffer pool DEFAULT for block size 8K
00379. 00000 - "no free buffers available in buffer pool %s for block size %sK"
*Cause: All buffers in the specified buffer pool for the specified block size
are in use and no free buffers are available.
*Action: Increase the number of buffers in the specified pool for the specified
block size
如何增加缓冲区的大小。
答案 0 :(得分:1)
这是由于指定块大小的缓冲池不足,所有缓冲池都已被利用,您需要为高速缓存设置一些更高的值才能使其正常工作。
以sys用户身份连接到数据库实例并运行命令
更改系统设置db_cache__size = 8M或16M scope = both;
答案 1 :(得分:0)
当从C#运行大量查询(组装导出)时,在大型数据库(160 GB)上遇到相同的问题。
client_result_cache_size大整数0
db_16k_cache_size大整数0
db_2k_cache_size大整数0
db_32k_cache_size大整数0
db_4k_cache_size大整数0
db_8k_cache_size大整数0
db_cache_size大整数0
db_flash_cache_size大整数0
db_keep_cache_size大整数0
db_recycle_cache_size大整数0
从上面的“ 0”开始,它是由AMM(自动内存管理)自动管理的,但是似乎Oracle在查询过程中并没有进行垃圾收集。
我认为下图显示了AMM正在使用的Oracle内存。
memory_max_target大整数2512M memory_target大整数2512M
我不认为手动设置内存是答案,但是答案是什么?