Files
kis_trader/scratch/explain_heavy.py

39 lines
1.0 KiB
Python

import sys
sys.path.insert(0, '/home/hoon/kis_bot')
from database import TradeDB
db = TradeDB()
today = '20260813'
queries = [
# 1. KIS vs Kiwoom 교집합 (heavy 쿼리 예상)
f"""
EXPLAIN SELECT
k.code,
k.n AS kis_n,
w.n AS kiwoom_n,
ROUND(w.n / NULLIF(k.n, 0), 3) AS ratio_kw_over_kis
FROM (
SELECT code, COUNT(*) n FROM ws_ticks
WHERE tick_time LIKE '{today}%' AND source='kis' GROUP BY code
) k
INNER JOIN (
SELECT code, COUNT(*) n FROM ws_ticks
WHERE tick_time LIKE '{today}%' AND source='kiwoom' GROUP BY code
) w ON k.code = w.code
""",
# 2. filter_eval 종목 교집합 등
f"EXPLAIN SELECT code, COUNT(*) n FROM ws_orderbook WHERE snap_time LIKE '{today}%' AND source='filter_eval' GROUP BY code"
]
for q in queries:
print(f"\n--- Query: {q} ---")
try:
rows = db.conn.execute(q).fetchall()
for r in rows:
print(dict(r))
except Exception as e:
print("Error:", e)
db.close()