# Частичная перезагрузка

Полная перезагрузка всегда начинается с удаления всех таблиц в существующей модели данных, после чего выполняется скрипт загрузки.

При частичной перезагрузке это не делается. Вместо этого все таблицы в модели данных сохраняются, и затем выполняются только операторы Load и Select, которым предшествует префикс Add, Merge или Replace. Другие таблицы данных не затрагиваются командой. Аргумент only обозначает, что оператор должен быть выполнен только во время частичных перезагрузок и должен быть проигнорирован во время полных перезагрузок. В следующей таблице подводится итог выполнения оператора для частичных или полных перезагрузок.

| Оператор | Полная перезагрузка | Частичная перезагрузка |
| --- | --- | --- |
| Load ... | Оператор будет выполнен | Оператор не будет выполнен |
| Добавить/заменить/объединить загрузку ... | Оператор будет выполнен | Оператор будет выполнен |
| Только добавить/заменить/объединить загрузку ... | Оператор не будет выполнен | Оператор будет выполнен |

Частичная перезагрузка обеспечивает несколько преимуществ по сравнению с полной перезагрузкой:

* Она быстрее, так как необходимо загружать только недавно измененные данные. При работе с большими наборами данных эта разница существенна.

* Потребляется меньше памяти, так как загружается меньше данных.

* Она более надежна, так как запросы исходных данных выполняются быстрее, сокращая риск возникновения проблем с сетью.

Примечание к информацииЧтобы частичная перезагрузка работала правильно, приложение должно быть открыто с данными до ее запуска.

Выполните частичную перезагрузку с помощью кнопки Перезагрузить. Для получения дополнительной информации см. [Кнопка](https://help.qlik.com/ru-RU/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Visualizations/Button/button.htm). Можно также использовать Qlik Engine JSON API.

## Ограничения

Частичная перезагрузка завершится ошибкой, если имеются команды со ссылками на таблицы, которые существовали во время полной перезагрузки, но отсутствовали во время частичной перезагрузки.

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

#### Пример

### Примеры команд

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

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

где &lt;Table\_removed\_after\_full\_reload&gt; — это таблица, которая существовала при полной перезагрузке, но отсутствовала при частичной перезагрузке.

### Обходной прием

В качестве обходного решения можно заключить команду в следующий оператор условия (if):

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

При частичной перезагрузке могут удаляться значения из данных. Однако это не будет отражено в списке уникальных значений, которые хранятся во внутренней таблице. Поэтому даже после частичной перезагрузки список будет содержать все уникальные значения, которые существовали в поле с момента последней полной перезагрузки, то есть их может быть больше, чем существует сейчас после частичной перезагрузки. Это влияет на вывод функций FieldValueCount() и FieldValue(). Функция FieldValueCount() потенциально может вернуть количество, превышающее текущее количество значений поля.

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

#### Пример

## Пример 1.

### Скрипт загрузки

Добавьте образец скрипта в свое приложение и выполните частичную перезагрузку. Чтобы увидеть результаты, добавьте поля, перечисленные в столбце результатов, в лист приложения.

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

### Результат

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 |

### Объяснение

Оператор выполняется только при частичной перезагрузке. Если префикс distinct пропущен, количество в поле Num будет увеличиваться с каждой последующей частичной перезагрузкой.

## Пример 2.

### Скрипт загрузки

Добавьте образец скрипта в свое приложение. Выполните полную перезагрузку и посмотрите, что произойдет. Затем выполните частичную перезагрузку и оцените результат. Чтобы увидеть результаты, добавьте поля, перечисленные в столбце результатов, на лист приложения.

```

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

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

### Результат

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 |

### Объяснение

Первая таблица загружается при полной перезагрузке, а вторая таблица просто заменяет первую в процессе частичной перезагрузки.

## Подробнее

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