From f01ab13ab9a034d51bb37560d3c961b40393cfe2 Mon Sep 17 00:00:00 2001 From: windpacer Date: Fri, 8 May 2026 18:10:55 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20v=5Ftag=5Fsummary=20=EB=B7=B0=EC=97=90?= =?UTF-8?q?=EC=84=9C=20state=20descriptor=20JOIN=20=EC=A0=9C=EA=B1=B0,=20?= =?UTF-8?q?=EA=B3=A0=EC=95=84=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20DELETE=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Database/ExperionDbContext.cs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/Infrastructure/Database/ExperionDbContext.cs b/src/Infrastructure/Database/ExperionDbContext.cs index 0ea7a02..4813b07 100644 --- a/src/Infrastructure/Database/ExperionDbContext.cs +++ b/src/Infrastructure/Database/ExperionDbContext.cs @@ -311,10 +311,7 @@ public class ExperionDbService : IExperionDbService instate1_rt.livevalue AS instate1, instate2_rt.livevalue AS instate2, desc_md.value AS description, - area_md.value AS area, - s0d_md.value AS state0_descriptor, - s1d_md.value AS state1_descriptor, - s2d_md.value AS state2_descriptor + area_md.value AS area FROM (SELECT DISTINCT split_part(tagname, '.', 1) AS base_tag FROM realtime_table) rt_base LEFT JOIN realtime_table pv_rt ON pv_rt.tagname = rt_base.base_tag || '.pv' LEFT JOIN realtime_table sp_rt ON sp_rt.tagname = rt_base.base_tag || '.sp' @@ -324,9 +321,15 @@ public class ExperionDbService : IExperionDbService LEFT JOIN realtime_table instate2_rt ON instate2_rt.tagname = rt_base.base_tag || '.instate2' LEFT JOIN tag_metadata desc_md ON desc_md.base_tag = rt_base.base_tag AND desc_md.attribute = 'desc' LEFT JOIN tag_metadata area_md ON area_md.base_tag = rt_base.base_tag AND area_md.attribute = 'area' - LEFT JOIN tag_metadata s0d_md ON s0d_md.base_tag = rt_base.base_tag AND s0d_md.attribute = 'state0descriptor' - LEFT JOIN tag_metadata s1d_md ON s1d_md.base_tag = rt_base.base_tag AND s1d_md.attribute = 'state1descriptor' - LEFT JOIN tag_metadata s2d_md ON s2d_md.base_tag = rt_base.base_tag AND s2d_md.attribute = 'state2descriptor' + """); + + // state descriptor 고아 데이터 정리 (state0~7descriptor는 더 이상 로딩하지 않음) + await _ctx.Database.ExecuteSqlRawAsync(""" + DELETE FROM tag_metadata WHERE attribute IN ( + 'state0descriptor', 'state1descriptor', 'state2descriptor', + 'state3descriptor', 'state4descriptor', 'state5descriptor', + 'state6descriptor', 'state7descriptor' + ) """); // history 테이블은 수동으로 하이퍼테이블 생성 필요