小巧、快速、可靠。
選擇其中三項。

SQLite C 介面

設定堆積大小限制

sqlite3_int64 sqlite3_soft_heap_limit64(sqlite3_int64 N);
sqlite3_int64 sqlite3_hard_heap_limit64(sqlite3_int64 N);

這些介面會限制單一行程中所有資料庫連線可使用的堆積記憶體數量。

sqlite3_soft_heap_limit64() 介面設定及/或查詢 SQLite 可配置的堆積記憶體軟性限制。當堆積記憶體使用量接近限制時,SQLite 會努力將堆積記憶體使用量保持在軟性堆積限制以下,方法是減少頁面快取中保留的頁面數量。軟性堆積限制之所以是「軟性」的,是因為即使 SQLite 努力保持在限制以下,它還是會超出限制,而不是產生 SQLITE_NOMEM 錯誤。換句話說,軟性堆積限制僅供參考。

sqlite3_hard_heap_limit64(N) 介面設定記憶體配置的硬性上限為 N 位元組。 sqlite3_hard_heap_limit64(N) 介面與 sqlite3_soft_heap_limit64(N) 類似,不同之處在於當達到硬性堆積限制時,記憶體配置將會失敗。

sqlite3_soft_heap_limit64() 和 sqlite3_hard_heap_limit64() 的回傳值都是呼叫前堆積限制的大小,如果發生錯誤則為負數。如果參數 N 為負數,則堆積限制不會改變。因此,目前的堆積限制大小可以透過呼叫 sqlite3_soft_heap_limit64(-1) 或 sqlite3_hard_heap_limit(-1) 來確定。

將堆積限制設定為零會停用堆積限制器機制。

軟性堆積限制不能大於硬性堆積限制。如果啟用了硬性堆積限制,並且以大於硬性堆積限制的值 N 呼叫 sqlite3_soft_heap_limit(N),則軟性堆積限制會設定為硬性堆積限制的值。只要啟用硬性堆積限制,就會自動啟用軟性堆積限制。當呼叫 sqlite3_hard_heap_limit64(N) 且軟性堆積限制超出 1..N 的範圍時,軟性堆積限制會設定為 N。當硬性堆積限制啟用時,呼叫 sqlite3_soft_heap_limit64(0) 會使軟性堆積限制等於硬性堆積限制。

記憶體配置限制也可以使用 PRAGMA soft_heap_limitPRAGMA hard_heap_limit 來調整。

如果符合以下一或多個條件,則目前實作中不會強制執行堆積限制:

SQLite 強制執行堆積限制的情況可能會在未來的 SQLite 版本中有所改變。

另請參閱 物件常數函式 清單。