Buffer load

| | Comments (0)

IT

Spesso sviluppando capita di avere a che fare con caricamenti molto lenti, ad esempio da viste con molte join (che sarebbe opportuno rifare a livello QlikView, ma questa è un'altra storia) oppure server o DBMS obsolescenti.
Durante la fase di sviluppo si fanno molti ricaricamenti consecutivi per provare piccole modifiche, e perdere tempo risulta inutile, inefficiente, fastidioso. Per aggirare il problema è possibile dire a QlikView di ricordarsi ciò che gli ha ritornato una load (o una select) tramite il comando buffer:

buffer (stale 8 hours) sql select * from tabella;
buffer (stale 1 hour) load id, capitalize(desc) as desc from tab2.qvd (qvd);

Così facendo QlikView la prima volta che viene eseguito crea un QVD temporaneo e, finché non "scade" (la durata viene specificata fra le parentesi) dalla seconda volta in poi carica da quello anziché dalla vera fonte dati.
E caricare da QVD significa caricare a circa 30 megabyte al secondo, mentre una vista pesante potrebbe restituire cento righe al secondo, che magari sono soltanto 2 kb.
Se dovesse essere modificato il testo della load (ad esempio viene caricato un campo in più, o viene usato capitalize() per un campo di testo) QlikView sarà sufficientemente furbo da ricaricare dalla vera fonte dati e sostituire il buffer.

EN

Quite often when developing you keep reloading your document, just to test slight changes. Having to wait slow SELECTs is really upsetting, so here is a way to tell QlikView not to reload them every single time, but rather save its content on a fast QVD when the query itself is unchanged:

buffer (stale 8 hours) sql select * from tabella;
buffer (stale 1 hour) load id, capitalize(desc) as desc from tab2.qvd (qvd);

QlikView will reuse the same data for 8 and 1 hours (in the example above).

Leave a comment

Novità! Se vuoi essere contattato da un consulente Querit lascia nome e numero e Ti telefoneremo:





Pages