Buffer

透過 buffer前置詞可以自動建立和維護QVD 檔案。這個前置詞可以用於指令碼的大多數 LOADSELECT 陳述式。其表示 QVD檔案會用於快取/緩衝陳述式的結果。

語法:  

Buffer [(option [ , option])] ( loadstatement | selectstatement )

option::= incremental | stale [after] amount [(days | hours)]

 

如果不使用任何選項,則指令碼第一次執行所建立的 QVD緩衝區就無使用期限。

QVD緩衝區依預設儲存在 C:\ProgramData\QlikTech\QlikView\Buffers 中。

建立 QVD緩衝區的文件之中的完整指令碼執行完全不再參考該緩衝區時,或者建立該緩衝區的文件不再存在時,一般都會移除該緩衝區。

引數:  

引數 描述
incremental incremental選項能夠唯讀基礎檔案的一部分。先前的檔案大小儲存於 XML檔案的QVD 標頭中。這特別適用於記錄檔。先前載入的所有記錄都是從 QVD檔案讀取的,而後續的新記錄則是從原始來源讀取的,最後會建立更新的QVD 檔案。請注意,incremental選項只能用於 LOAD 陳述式和文字檔,只要變更或刪除舊檔案,就無法使用累加載入!
stale [after] amount [(days | hours)] amount是指定時間週期的數字。可以使用小數。如果未指定單位,一律假設單位為天數。
stale after選項一般會用於其中原始資料沒有簡單時間戳記的資料庫來源。而非指定QVD快照可以用多久時間。stale after 子句只是陳述從建立QVD緩衝區之後經過多久才會失效的時間週期。在這段時間之前,將使用QVD緩衝區做為資料的來源,過了這段時間之後,則將使用原始資料來源。此後 QVD緩衝區檔案將自動更新,並且重啟新的週期。

限制:  

其中有許多限制,最顯著的是任何複雜陳述式的核心都必須要有 LOAD檔案或 SELECT 陳述式。

範例 1:  

Buffer SELECT * from MyTable;

範例 2:  

Buffer (stale after 7 days) SELECT * from MyTable;

範例 3:  

Buffer (incremental) LOAD * from MyLog.log;

另請參閱: