web-dev-qa-db-ja.com

mysqlでクエリの分離レベルを表示する

特定のクエリで使用されている分離レベルを確認するにはどうすればよいですか?クエリが(サードパーティアプリケーションによって)実行された後、どの分離レベルが使用されたかを知りたいです(たとえば、コミットされていない読み取り)。

明確にするために、私は現在、mysql5.1に対して実行されているEF4を使用するアプリケーションに取り組んでいます。さまざまなコーディングパターンをテストして、特定のEF4クエリの分離レベルを変更しようとしています。分離レベルが正しく設定されていることをテストして確認できる必要があります。

23
reustmd
SHOW VARIABLES LIKE 'tx_isolation';

またはMySQL5.1以降を使用している場合

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

サーバーがグローバルに構成した内容を知りたい場合は、上記を次のように変更します。

SHOW GLOBAL VARIABLES LIKE 'tx_isolation';

またはMySQL5.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を表示する必要があります。

36
RolandoMySQLDBA