ORA-00382與DB_nK_CACHE_SIZE參數設定

來源:互聯網
上載者:User

ORA-00382與DB_nK_CACHE_SIZE參數設定

最近在嘗試最佳化一個包含blob欄位表的查詢,考慮使用非標準塊緩衝。但是,在嘗試設定DB_32K_CACHE_SIZE參數時,遭遇報錯(報錯內容:ORA-00382: 32768 不是有效塊大小, 有效範圍為 [..])。於是,到官方文檔查了一下,才明白這個參數的設定由於和底層資料區塊相關,與作業系統是緊密相連的。在Windows作業系統下,DB_32K_CACHE_SIZE參數時停用,但是,它支援DB_16K_CACHE_SIZE。

這裡給出參數的官方文檔說明以及具體的操作過程,僅供參考。

官方文檔說明DB_nK_CACHE_SIZE

屬性

描述

參數類型

整型數

文法

DB_[2 | 4 | 8 | 16 | 32]K_CACHE_SIZE =integer[K | M | G]

預設值

0 (預設情況下,不設定非標準塊大小緩衝)

修改

ALTER SYSTEM

取值範圍

最小值: 0 (如果值大於0,會自動修改為記憶體顆粒大小*處理器個數,或者4MB*CPU個數,取二者較大值)

最大值: 取決於作業系統

基本參數

DB_nK_CACHE_SIZE (其中 n = 2, 4, 8, 16, 32) 指定了nK緩衝區的大小。你可以設定除DB_BLOCK_SIZE之外的其他數值。例如,如果DB_BLOCK_SIZE為4096,那麼你設定DB_4K_CACHE_SIZE就是非法的(因為4K的緩衝區大小已經被DB_CACHE_SIZE參數設定過了)。

如果資料庫中存在nK塊大小的線上資料表空間,那麼不能設定該參數為0。

作業系統會限制特定的塊大小。例如,如果作業系統最大塊尺寸小於32KB,那麼你不能設定DB_32K_CACHE_SIZE參數。同樣,如果最小塊尺寸大於2KB,那麼你也不能設定DB_2K_CACHE_SIZE參數。

作業環境

我在Oracle10g+Windows Server 2008 Standard R2環境下進行以下操作。

  1. SQL>

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.