Просмотр уровня изоляции для запроса в MySQL - PullRequest
23 голосов
/ 18 марта 2011

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

Чтобы было ясно, я сейчас работаю над приложением, которое используетEF4 работает против MySQL 5.1.Я пытаюсь протестировать различные шаблоны кодирования, чтобы изменить уровни изоляции для конкретных запросов EF4.Мне нужно иметь возможность проверить и убедиться, что уровни изоляции установлены правильно.

1 Ответ

36 голосов
/ 18 марта 2011
SHOW VARIABLES LIKE 'tx_isolation';

или если у вас MySQL 5.1 +

SELECT * FROM information_schema.session_variables
WHERE variable_name = 'tx_isolation';

Если вы хотите узнать, что сервер настроил глобально, измените вышеприведенное на следующее:

SHOW GLOBAL VARIABLES LIKE 'tx_isolation';

или, если у вас MySQL 5.1 +

SELECT * FROM information_schema.global_variables
WHERE variable_name = 'tx_isolation';

Если вы хотите, чтобы запрос показал, какая изоляция транзакции используется, запустите:

SELECT variable_value IsolationLevel
FROM information_schema.session_variables
WHERE variable_name = 'tx_isolation';

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я НЕ ЗНАЮ EF4

Если вам разрешено встраивать подзапросы в SQL, который должен выполняться EF4, вам, возможно, придется встроить этот запрос как подзапрос (или встроить запрос как подзапрос) и отобразить переменную IsolationLevel вместе с результатами актуальный запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...