Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Нет результата от установки SET TRANSACTION ISOLATION LEVEL на базе данных
|
|||
|---|---|---|---|
|
#18+
Всем привет. У меня приложение WCF, в котором открывается транзакция на базу данных sql. На базе данных ms sql 2016 (SP1) я устанавливаю параметр SET TRANSACTION ISOLATION LEVEL в READ UNCOMMITTED, но на выполнение транзакций и на доступ к данным по select это никак не влияет (транзакция блокирует таблицу и данные невозможно прочитать). Так же я пробовал устанавливать параметр IsolationLevel.ReadUncommitted в BeginTransaction, но это тоже не помогает. Однако, если установить with (READUNCOMMITTED) для отдельных Select запросов, то все работает как надо и данные запрашиваются. По какой причине может не работать установка общего параметра IsolationLevel ни на базе данных, ни через код? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 10:37 |
|
||
|
Нет результата от установки SET TRANSACTION ISOLATION LEVEL на базе данных
|
|||
|---|---|---|---|
|
#18+
Antw, На базе данных вы не можете поменять уровень по умолчанию (если не брать snapshot). Также не понятно что, где и как вы устанавливатет, у уровня изоляции тоже есть свой scope. If you issue SET TRANSACTION ISOLATION LEVEL in a stored procedure or trigger, when the object returns control the isolation level is reset to the level in effect when the object was invoked. For example, if you set REPEATABLE READ in a batch, and the batch then calls a stored procedure that sets the isolation level to SERIALIZABLE, the isolation level setting reverts to REPEATABLE READ when the stored procedure returns control to the batch ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 10:59 |
|
||
|
Нет результата от установки SET TRANSACTION ISOLATION LEVEL на базе данных
|
|||
|---|---|---|---|
|
#18+
SqlConnection.BeginTransaction Method (IsolationLevel) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 11:04 |
|
||
|
Нет результата от установки SET TRANSACTION ISOLATION LEVEL на базе данных
|
|||
|---|---|---|---|
|
#18+
aleksrov, Первым способом на базе данных я указываю команду SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED, после чего проверяю командой dbcc useroptions настройки и вижу установку read uncommitted в параметре isolation level в настройках БД. Вторым способом с кода c# при открытии транзакции: connection.BeginTransaction(IsolationLevel.ReadUncommitted); я проставляю IsolationLevel. Запросы я вызываю с сервера через ExecuteReader и ExecuteNonQuery. По msdn этого должно быть достаточно, чтобы поменять IsolationLevel на БД. Или я ошибаюсь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 11:10 |
|
||
|
Нет результата от установки SET TRANSACTION ISOLATION LEVEL на базе данных
|
|||
|---|---|---|---|
|
#18+
aleksrov, SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED на БД устанавливается только для текущего конекшена. Понял, спасибо. НО уставновка с кода c# connection.BeginTransaction(IsolationLevel.ReadUncommitted); все равно не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 11:19 |
|
||
|
Нет результата от установки SET TRANSACTION ISOLATION LEVEL на базе данных
|
|||
|---|---|---|---|
|
#18+
SET TRANSACTION ISOLATION LEVEL устанавливает уровень изоляции для текущей сессии. dbcc useroptions так же показывает настройки текущей сессии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 11:20 |
|
||
|
Нет результата от установки SET TRANSACTION ISOLATION LEVEL на базе данных
|
|||
|---|---|---|---|
|
#18+
AntwВсем привет. У меня приложение WCF, в котором открывается транзакция на базу данных sql. На базе данных ms sql 2016 (SP1) я устанавливаю параметр SET TRANSACTION ISOLATION LEVEL в READ UNCOMMITTED, но на выполнение транзакций и на доступ к данным по select это никак не влияет (транзакция блокирует таблицу и данные невозможно прочитать). Так же я пробовал устанавливать параметр IsolationLevel.ReadUncommitted в BeginTransaction, но это тоже не помогает. Однако, если установить with (READUNCOMMITTED) для отдельных Select запросов, то все работает как надо и данные запрашиваются. По какой причине может не работать установка общего параметра IsolationLevel ни на базе данных, ни через код? Т.е. религиозные убеждения не дозволяют использовать Profiler? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 11:23 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=46&tid=1689825]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
67ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 272ms |
| total: | 448ms |

| 0 / 0 |
