# 사용법: python3 summarize_explain.py baseline [after] import glob import json import sys def find_table(node): if isinstance(node, dict): if isinstance(node.get("table"), dict): return node["table"] children = node.values() elif isinstance(node, list): children = node else: return None for child in children: found = find_table(child) if found: return found return None def keys_of(node): if isinstance(node, dict): for k, v in node.items(): if k == "key": yield v else: yield from keys_of(v) elif isinstance(node, list): for v in node: yield from keys_of(v) for prefix in sys.argv[1:]: for path in sorted(glob.glob(f"{prefix}_explain_*.json")): with open(path, encoding="utf-8") as f: table = find_table(json.load(f)) key = table.get("key") or " ∩ ".join(keys_of(table.get("index_merge", {}))) or "-" print(f"{path:40} access_type={str(table.get('access_type')):12} key={key:28} rows={table.get('rows')}")