# Caricamento parziale

Un ricaricamento completo inizia sempre eliminando tutte le tabelle nel modello dati esistente, dopodiché esegue lo script di caricamento.

Con un caricamento parziale questo non è possibile. Mantiene invece tutte le tabelle nel modello dati ed esegue solo le istruzioni Load e Select precedute da un prefisso Aggiungi, Unisci o Sostituisci. Altre tabelle di dati non sono interessate dal comando. L'argomento solo indica che l'istruzione deve essere eseguita solo durante i caricamenti parziali e deve essere ignorata durante i caricamenti completi. La tabella seguente riepiloga l'esecuzione dell'istruzione per i ricaricamenti parziali e completi.

| Istruzione | Ricaricamento completo | Caricamento parziale |
| --- | --- | --- |
| Load ... | Verrà eseguita l'istruzione | Non verrà eseguita l'istruzione |
| Aggiungi/Sostituisci/Unisci LOAD... | Verrà eseguita l'istruzione | Verrà eseguita l'istruzione |
| Aggiungi/Sostituisci/Unisci solo LOAD... | Non verrà eseguita l'istruzione | Verrà eseguita l'istruzione |

I ricaricamenti parziali comportano svariati benefici rispetto ai ricaricamenti completi:

* Sono più rapidi, perché solo i dati modificati di recente devono essere caricati. Con grandi set di dati la differenza è considerevole.

* Viene consumata meno memoria, visto che vengono caricati meno dati.

* Aumenta l'affidabilità, dato che le query ai dati sorgente vengono eseguite più rapidamente, riducendo il rischio di problemi di rete.

Nota informaticaAffinché il ricaricamento parziale funzioni correttamente, aprire l'app con i dati prima di attivare un ricaricamento parziale.

Eseguire un ricaricamento parziale usando il pulsante Ricarica. Per ulteriori informazioni, vedere [Pulsante](https://help.qlik.com/it-IT/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Visualizations/Button/button.htm). È anche possibile utilizzare Qlik Engine JSON API.

## Limitazioni

Un ricaricamento parziale non verrà completato correttamente se vi sono comandi con riferimento alle tabelle che sono esistite durante il ricaricamento completo ma non durante il ricaricamento parziale.

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/PartialReload.htm)

#### Esempio

### Comandi di esempio

```
LEFT JOIN(<Table_removed_after_full_reload>)
```

```
CONCATENATE(<Table_removed_after_full_reload>)
```

Dove &lt;Table\_removed\_after\_full\_reload&gt; è una tabella che esisteva a table nel ricaricamento completo, ma che non è presente in quello parziale.

### Soluzione

Come soluzione il comando può essere racchiuso dalla seguente istruzione if:

```
IF NOT IsPartialReload() THEN ... ENDIF.
```

Un ricaricamento parziale può rimuovere valori dai dati. Tuttavia, ciò non verrà riflesso nell'elenco dei valori distinti, che rappresenta una tabella mantenuta internamente. Pertanto, dopo un ricaricamento parziale, l'elenco conterrà tutti i valori distinti esistiti nel campo dall'ultimo ricaricamento completo, che potrebbero essere superiori a quanto attualmente esistente dopo il ricaricamento parziale. Ciò influisce sull'output delle funzioni FieldValueCount() e FieldValue(). Il valore FieldValueCount() potrebbe potenzialmente restituire un numero superiore al numero corrente di valori di campo.

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/PartialReload.htm)

#### Esempio

## Esempio 1

### Script di caricamento

Aggiungere lo script di esempio alla propria app ed eseguire un ricaricamento parziale. Per visualizzare il risultato, aggiungere i campi elencati nella colonna risultati a un foglio nell'app dell'utente.

```
T1:
Add only Load distinct recno()+10 as Num autogenerate 10;      
```

### Risultato

Resulting table

| Num | Count(Num) |
| --- | --- |
| 11 | 1 |
| 12 | 1 |
| 13 | 1 |
| 14 | 1 |
| 15 | 1 |
| 16 | 1 |
| 17 | 1 |
| 18 | 1 |
| 19 | 1 |
| 20 | 1 |

### Spiegazione

L'istruzione viene eseguita solo durante un ricaricamento parziale. Se il prefisso "distinto" viene omesso, il conteggio del campo Num aumenterà con ciascun ricaricamento parziale successivo.

## Esempio 2

### Script di caricamento

Aggiungere lo script di esempio alla propria app. Eseguire un ricaricamento completo e visualizzare il risultato. Quindi, eseguire un ricaricamento parziale e visualizzare il risultato. Per visualizzare i risultati, aggiungere i campi elencati nella colonna risultati a un foglio nell'app dell'utente.

```

T1:
Load recno() as ID, recno() as Value autogenerate 10;

T1:
Replace only Load recno() as ID, repeat(recno(),3) as Value autogenerate 10; 
```

### Risultato

Output table after full reload

| ID | Value |
| --- | --- |
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
| 5 | 5 |
| 6 | 6 |
| 7 | 7 |
| 8 | 8 |
| 9 | 9 |
| 10 | 10 |

Output table after partial reload

| ID | Value |
| --- | --- |
| 1 | 111 |
| 2 | 222 |
| 3 | 333 |
| 4 | 444 |
| 5 | 555 |
| 6 | 666 |
| 7 | 777 |
| 8 | 888 |
| 9 | 999 |
| 10 | 101010 |

### Spiegazione

La prima tabella viene caricata durante un ricaricamento completo, mentre la seconda tabella sostituisce semplicemente la prima tabella durante un ricaricamento parziale.

## Ulteriori informazioni

* [Load](https://help.qlik.com/it-IT/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)
* [Select](https://help.qlik.com/it-IT/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)
* [Add](https://help.qlik.com/it-IT/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Add.htm)
* [Unisci](https://help.qlik.com/it-IT/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Merge.htm)
* [Replace](https://help.qlik.com/it-IT/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Replace.htm)