Установите Nolock для таблиц SQL при чтении данных из Qlik sense

Я работаю над чтением данных Qlik sense из таблиц SQL Server 2016. При чтении данных Qlik устанавливает блокировку таблиц SQL, что блокирует транзакции.

Есть ли способ установить Nolock в смысле Qlik для таблиц SQL, чтобы разблокировать другие транзакции. Пожалуйста, посоветуйте, как поступить.


person KOT    schedule 22.09.2019    source источник
comment
Почему вы хотите? Вы знаете, что делает NOLOCK, верно? Вы также знаете последствия его использования?   -  person Larnu    schedule 22.09.2019
comment
Возможно, вы захотите рассмотреть возможность использования изоляции моментальных снимков. Это может (или не может) решить вашу проблему.   -  person Nick.McDermaid    schedule 23.09.2019
comment
Спасибо за ответ. Будь то изоляция моментальных снимков или NoLOCK, как мне подать заявку в Qlik Sense, чтобы чтение данных из SQL из Qlik sense не блокировало другие транзакции в SQL.   -  person KOT    schedule 23.09.2019
comment
Изоляция моментальных снимков применяется на уровне базы данных, используется автоматически и не требует каких-либо изменений Qlik sense. Если Qlik sense позволяет вводить SQL напрямую, вы можете просто добавить with (nolock) после каждой таблицы или set transactional isolation level read uncommitted в начале. В противном случае нет никакого способа сделать это, о котором я знаю. Можете ли вы редактировать оператор SQL напрямую?   -  person Nick.McDermaid    schedule 23.09.2019
comment
Сам Qlik не выполняет никаких блокировок. Qlik прозрачен — он передает sql как есть брокеру данных (odbc, oledb и т. д.). в синтаксисе qlik все после оператора SQL передается для выполнения из базы данных. Если синтаксис sql позволяет вам написать nolock (или ваш эквивалент db), просто напишите его после оператора SQL qlik, и он будет передан в db. Просто пример скрипта qlik: SQL NoLock; select * from my_table;   -  person Stefan Stoichev    schedule 23.09.2019
comment
NoLock не идентифицируется в смысле Qlik, и я напрямую читаю таблицу из смысла Qlik, где я не могу применить уровень изоляции на стороне sql,   -  person KOT    schedule 24.09.2019
comment
Не могли бы вы вставить пример кода?   -  person Stefan Stoichev    schedule 24.09.2019
comment
У меня есть решение, вызовите его как: Загрузить * из SQL Выберите * из таблицы (NoLock) в ScripLoader   -  person KOT    schedule 28.09.2019


Ответы (1)


У меня есть решение, в диспетчере ScripLoad:

Вместо использования :

Загрузить * из Select * из таблицы (NoLock) // дает синтаксическую ошибку

Изменился на:

Загрузить * из SQL Выбрать * из таблицы (без блокировки)

person KOT    schedule 28.09.2019