A5:SQL Mk-2

開発のこと、日々のこと

テーブル情報を開く際に固まる事象を調査したい

ホーム フォーラム A5:SQL Mk-2掲示板 テーブル情報を開く際に固まる事象を調査したい

  • このトピックには7件の返信、1人の参加者があり、最後ににより1年、 7ヶ月前に更新されました。
8件の投稿を表示中 - 1 - 8件目 (全8件中)
  • 投稿者
    投稿
  • #19629 返信
    osk
    ゲスト

    左のツリーからテーブル名をダブルクリックした際に
    A5mk2が10秒ほど固まる環境があります。
    接続先はAWSのEC2に入っているMySQLですが、
    10秒ほど経過した後は、通常通りテーブル情報閲覧やデータ操作ができます。
    また別のテーブル名をダブルクリックすると、また10秒ほど固まります。

    可能性として、なんらかのポートが閉じているなどのAWS側の問題なのか、
    MySQLの設定に問題があるのでは、と推測しておりますが、
    ログを出力するなどの調査方法はございますでしょうか。

    ちなみに別のツール(HeidiSQL)では再現しませんし、
    別のAWSにあるMySQLでも類似事象は発生しません。

    #19671 返信
    松原正和
    キーマスター

    osk さんこんにちは。
     
    テーブルを開く際、A5:SQL Mk-2のステータスバー部分にどのような処理をしているか表示しています。固まっている間、何が表示されているでしょうか?
     
    あるいは、A5M2.exe と同じフォルダに、A5M2.log という空ファイルを作成すると、内部で実行されているSQLなどが表示されるようになります。
    (どちらかといえば私自身がデバッグなどで使うための機能なので、出力内容はあまり見やすくなく、出力している内容も偏りがあったりします。)
     
    もしかすると、テーブル数が多いDBなどで内部的にテーブルを列挙したりするときに時間がかかっているなどあるかもしれません。

    #19687 返信
    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))

    #19759 返信
    松原正和
    キーマスター

    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_position

    #19844 返信
    osk
    ゲスト

    教えていただいた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’

    #19892 返信
    松原正和
    キーマスター

    osk さんこんにちは。
     
    前回のSQLでは、複合主キーの場合の列順序が正しく取れない可能性があるようでした。Version 2.18.0 beta 50 で少し現在のSQLを改善してみたのですが、いかがでしょうか?
     
    参考までに、全テーブル数と全テーブルのカラム数のようなものが分かれば教えていただきたいです。

    #20150 返信
    osk
    ゲスト

    返答ありがとうございます。
    Version 2.18.0 beta 50 で試してみましたが、同様の状況でした。
    全テーブル数は136、 全カラム数は1834 ありました。

    #20164 返信
    松原正和
    キーマスター

    osk さんこんにちは。
     
    全テーブル数は136、 全カラム数は1834 は少し多いですね。高速に主キー情報が取得できるクエリー(メタデータ)ができないか試してみます。

8件の投稿を表示中 - 1 - 8件目 (全8件中)
返信先: テーブル情報を開く際に固まる事象を調査したい
あなたの情報:




コメントは受け付けていません。