powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Нет результата от установки SET TRANSACTION ISOLATION LEVEL на базе данных
8 сообщений из 8, страница 1 из 1
Нет результата от установки SET TRANSACTION ISOLATION LEVEL на базе данных
    #39637905
Antw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
У меня приложение WCF, в котором открывается транзакция на базу данных sql. На базе данных ms sql 2016 (SP1) я устанавливаю параметр SET TRANSACTION ISOLATION LEVEL
в READ UNCOMMITTED, но на выполнение транзакций и на доступ к данным по select это никак не влияет (транзакция блокирует таблицу и данные невозможно прочитать). Так же я пробовал устанавливать параметр IsolationLevel.ReadUncommitted в BeginTransaction, но это тоже не помогает. Однако, если установить with (READUNCOMMITTED) для отдельных Select запросов, то все работает как надо и данные запрашиваются. По какой причине может не работать установка общего параметра IsolationLevel ни на базе данных, ни через код?
...
Рейтинг: 0 / 0
Нет результата от установки SET TRANSACTION ISOLATION LEVEL на базе данных
    #39637913
aleksrov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Нет результата от установки SET TRANSACTION ISOLATION LEVEL на базе данных
    #39637914
ЛиП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SqlConnection.BeginTransaction Method (IsolationLevel) ?
...
Рейтинг: 0 / 0
Нет результата от установки SET TRANSACTION ISOLATION LEVEL на базе данных
    #39637921
Antw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleksrov,

Первым способом на базе данных я указываю команду SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED, после чего проверяю командой dbcc useroptions настройки и вижу установку read uncommitted в параметре isolation level в настройках БД.

Вторым способом с кода c# при открытии транзакции:
connection.BeginTransaction(IsolationLevel.ReadUncommitted);
я проставляю IsolationLevel.

Запросы я вызываю с сервера через ExecuteReader и ExecuteNonQuery.

По msdn этого должно быть достаточно, чтобы поменять IsolationLevel на БД. Или я ошибаюсь?
...
Рейтинг: 0 / 0
Нет результата от установки SET TRANSACTION ISOLATION LEVEL на базе данных
    #39637926
Antw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleksrov,

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED на БД устанавливается только для текущего конекшена. Понял, спасибо.
НО уставновка с кода c# connection.BeginTransaction(IsolationLevel.ReadUncommitted); все равно не работает.
...
Рейтинг: 0 / 0
Нет результата от установки SET TRANSACTION ISOLATION LEVEL на базе данных
    #39637927
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SET TRANSACTION ISOLATION LEVEL устанавливает уровень изоляции для текущей сессии. dbcc useroptions так же показывает настройки текущей сессии.
...
Рейтинг: 0 / 0
Нет результата от установки SET TRANSACTION ISOLATION LEVEL на базе данных
    #39637931
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntwВсем привет.
У меня приложение WCF, в котором открывается транзакция на базу данных sql. На базе данных ms sql 2016 (SP1) я устанавливаю параметр SET TRANSACTION ISOLATION LEVEL
в READ UNCOMMITTED, но на выполнение транзакций и на доступ к данным по select это никак не влияет (транзакция блокирует таблицу и данные невозможно прочитать). Так же я пробовал устанавливать параметр IsolationLevel.ReadUncommitted в BeginTransaction, но это тоже не помогает. Однако, если установить with (READUNCOMMITTED) для отдельных Select запросов, то все работает как надо и данные запрашиваются. По какой причине может не работать установка общего параметра IsolationLevel ни на базе данных, ни через код?

Т.е. религиозные убеждения не дозволяют использовать Profiler?
...
Рейтинг: 0 / 0
Нет результата от установки SET TRANSACTION ISOLATION LEVEL на базе данных
    #39637932
Antw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич,

это я понял, спасибо
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Нет результата от установки SET TRANSACTION ISOLATION LEVEL на базе данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]