如何确定给定查询的隔离级别?执行查询后(由第三方应用程序执行)我想知道使用了哪个隔离级别(例如,未提交读取)。
要清楚,我目前正在开发一个使用EF4运行mysql 5.1的应用程序。我尝试测试不同的编码模式以更改特定EF4查询的隔离级别。我需要能够测试并确保正确设置隔离级别。
答案 0 :(得分:36)
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
如果允许在要由EF4运行的SQL中嵌入子查询,则可能必须将此查询作为子查询嵌入(或将查询作为子查询嵌入)并显示变量IsolationLevel以及实际查询。