ホーム › フォーラム › A5:SQL Mk-2掲示板 › テーブル情報を開く際に固まる事象を調査したい
- このトピックには7件の返信、1人の参加者があり、最後ににより1年、 7ヶ月前に更新されました。
-
投稿者投稿
-
oskゲスト
左のツリーからテーブル名をダブルクリックした際に
A5mk2が10秒ほど固まる環境があります。
接続先はAWSのEC2に入っているMySQLですが、
10秒ほど経過した後は、通常通りテーブル情報閲覧やデータ操作ができます。
また別のテーブル名をダブルクリックすると、また10秒ほど固まります。可能性として、なんらかのポートが閉じているなどのAWS側の問題なのか、
MySQLの設定に問題があるのでは、と推測しておりますが、
ログを出力するなどの調査方法はございますでしょうか。ちなみに別のツール(HeidiSQL)では再現しませんし、
別のAWSにあるMySQLでも類似事象は発生しません。松原正和キーマスターosk さんこんにちは。
テーブルを開く際、A5:SQL Mk-2のステータスバー部分にどのような処理をしているか表示しています。固まっている間、何が表示されているでしょうか?
あるいは、A5M2.exe と同じフォルダに、A5M2.log という空ファイルを作成すると、内部で実行されているSQLなどが表示されるようになります。
(どちらかといえば私自身がデバッグなどで使うための機能なので、出力内容はあまり見やすくなく、出力している内容も偏りがあったりします。)
もしかすると、テーブル数が多いDBなどで内部的にテーブルを列挙したりするときに時間がかかっているなどあるかもしれません。oskゲスト回答ありがとございます。
ログで遅い箇所は特定できました。下記SQLで20秒かかっておりました。
結果は1件です。2023/02/13 16:16:40.213 : D : : CreateResultSet_:
select
KCU.COLUMN_NAME
from
INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU
inner join INFORMATION_SCHEMA.TABLE_CONSTRAINTS TC
on TC.CONSTRAINT_SCHEMA = KCU.CONSTRAINT_SCHEMA
and TC.CONSTRAINT_NAME = KCU.CONSTRAINT_NAME
and TC.TABLE_SCHEMA = KCU.TABLE_SCHEMA
and TC.TABLE_NAME = KCU.TABLE_NAME
where
TC.CONSTRAINT_TYPE = ‘PRIMARY KEY’
and KCU.TABLE_SCHEMA=’demo’
and KCU.TABLE_NAME=’table’
order by
KCU.ORDINAL_POSITION
2023/02/13 16:16:59.313 : D : : CreateResultSet_:End 19109ms実行計画は下記の通りでした。チューニングが必要でしょうか。
explain
+-SIMPLE KCU ALL TABLE_SCHEMA,TABLE_NAME (Using where; Open_full_table; Scanned 0 databases; Using temporary; Using filesort)
+-SIMPLE TC ALL (Using where; Open_full_table; Scanned all databases; Using join buffer (Block Nested Loop))松原正和キーマスターosk さんこんにちは。
主キーを取得するSQLで遅くなっているようですね。
では例えば、以下のSQLではいかがでしょうか?select
c.COLUMN_NAME
from
information_schema.columns c
where
c.TABLE_SCHEMA = ‘demo’
and c.TABLE_NAME = ‘table’
and c.COLUMN_KEY = ‘PRI’
order by
ordinal_positionoskゲスト教えていただいたSQLでは0.01sと早く、
joinしているtable単体(※)も0.01sと早いですが
joinすると遅い状況の様でした。
なお別のAWSにあるスキーマでは、同じ実行計画ですが0.01sと早い状況でした。※
select
*
from
INFORMATION_SCHEMA.TABLE_CONSTRAINTS TC
where
TC.TABLE_SCHEMA=’demo’
and TC.TABLE_NAME=’table’
and TC.CONSTRAINT_TYPE = ‘PRIMARY KEY’松原正和キーマスターosk さんこんにちは。
前回のSQLでは、複合主キーの場合の列順序が正しく取れない可能性があるようでした。Version 2.18.0 beta 50 で少し現在のSQLを改善してみたのですが、いかがでしょうか?
参考までに、全テーブル数と全テーブルのカラム数のようなものが分かれば教えていただきたいです。oskゲスト返答ありがとうございます。
Version 2.18.0 beta 50 で試してみましたが、同様の状況でした。
全テーブル数は136、 全カラム数は1834 ありました。松原正和キーマスターosk さんこんにちは。
全テーブル数は136、 全カラム数は1834 は少し多いですね。高速に主キー情報が取得できるクエリー(メタデータ)ができないか試してみます。 -
投稿者投稿