Przeskocz do zawartości głównej

Buffer

Pliki QVD można tworzyć i utrzymywać automatycznie z użyciem prefiksu buffer. Prefiksu tego można używać w większości instrukcji LOADSELECT w skryptach. Sygnalizuje on, że do buforowania wyniku instrukcji używane są pliki QVD.

Składnia:  

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

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

Jeśli nie zostanie podana żadna opcja, bufor QVD utworzony przez pierwsze wykonanie skryptu będzie używany przez czas nieokreślony.

Nazwa pliku QVD jest wyliczanym 160-bitowym skrótem szesnastkowym całej następującej po niej instrukcji LOAD lub SELECT i innych informacji wyróżniających. Oznacza to, że każda zmiana w następującej później instrukcji LOAD lub SELECT spowoduje, że bufor QVD stanie się niepoprawny.

Bufory QVD są zazwyczaj usuwane, gdy nie ma już do nich żadnych odniesień po wykonaniu całego skryptu w aplikacji tworzącej bufor lub gdy aplikacja tworząca bufor przestaje istnieć.

Argumenty:  

Argumenty
Argument Opis
incremental

Opcja incremental umożliwia odczytywanie tylko części pliku bazowego. Poprzedni rozmiar pliku jest zapisany w nagłówku XML w pliku QVD. Jest to szczególnie przydatne w przypadku plików dziennika. Wszystkie rekordy załadowane wcześniej są wczytywane z pliku QVD, natomiast dalsze nowe rekordy są wczytywane z oryginalnego pliku źródłowego. Na koniec tworzony jest zaktualizowany plik QVD.

Opcji incremental można używać tylko z instrukcjami LOAD i plikami tekstowymi. Ładowania przyrostowego nie można używać w przypadku zmiany lub usunięcia starych danych.

stale [after] amount [(days | hours)] amount to liczba określająca okres. Mogą być używane liczby dziesiętne. Jeśli parametr nie zostanie określony, przyjmowana jest wartość dni.

Opcja stale after jest zazwyczaj używana w przypadku źródeł bazodanowych, gdy nie istnieje prosty znacznik czasu oryginalnych danych. Zamiast tego określa się maksymalny dopuszczalny wiek migawki QVD. Klauzula stale after jedynie określa czas od momentu utworzenia bufora QVD, po którego upływie bufor będzie uważany za nieważny. Przed upływem tego czasu źródłem danych będzie bufor QVD, natomiast po upływie tego czasu używane będzie oryginalne źródło danych. Plik bufora QVD zostanie automatycznie zaktualizowany i rozpocznie się nowy okres.

Ograniczenia:  

Istnieje szereg ograniczeń, przede wszystkim wymaganie, aby sednem wszelkich instrukcji złożonych była instrukcja LOAD lub SELECT odnosząca się do pliku.

Przykład 1:  

Buffer SELECT * from MyTable;

Przykład 2:  

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

Przykład 3:  

Buffer (incremental) LOAD * from MyLog.log;