Skip to content

Commit 01a73c1

Browse files
committed
fix(performance): try to improove performance of inbrdv query
1 parent a425321 commit 01a73c1

File tree

3 files changed

+20
-8
lines changed

3 files changed

+20
-8
lines changed

pkg/builder/InbRdv.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,11 @@ func BuildInbRdvSatDeleteQuery(tableName string) (string, error) {
5555
}
5656
script += fmt.Sprintf("UPDATE rdv.%s_sat ", tableName)
5757
script += "SET delete_dts = NOW() "
58-
script += fmt.Sprintf("WHERE frh NOT IN (SELECT frh FROM rdv.%s_sat_cur) ", tableName)
59-
script += "AND delete_dts IS NULL;"
58+
script += fmt.Sprintf("FROM rdv.%s_sat AS s ", tableName)
59+
script += fmt.Sprintf("LEFT JOIN rdv.%s_sat_cur AS sc on s.frh = sc.frh ", tableName)
60+
script += "WHERE s.frh IS NULL;"
61+
// script += fmt.Sprintf("WHERE frh NOT IN (SELECT frh FROM rdv.%s_sat_cur) ", tableName)
62+
// script += "AND delete_dts IS NULL;"
6063

6164
return script, nil
6265
}
@@ -71,8 +74,9 @@ func BuildInbRdvSatInsertQuery(tableName string) (string, error) {
7174
}
7275

7376
script += fmt.Sprintf("INSERT INTO rdv.%s_sat ", tableName)
74-
script += fmt.Sprintf("SELECT * FROM rdv.%s_sat_cur ", tableName)
75-
script += fmt.Sprintf("WHERE frh NOT IN (SELECT frh FROM rdv.%s_sat);", tableName)
77+
script += fmt.Sprintf("SELECT sc.* FROM rdv.%s_sat_cur AS sc LEFT JOIN rdv.%s_sat AS s ON s.frh = sc.frh ", tableName, tableName)
78+
script += "WHERE s.frh IS NULL;"
79+
// script += fmt.Sprintf("WHERE frh NOT IN (SELECT frh FROM rdv.%s_sat);", tableName)
7680

7781
return script, nil
7882
}

pkg/builder/InbRdv_test.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,11 @@ func TestBuildInbRdvSatDeleteQuery(t *testing.T) {
6464
t.Fatalf("Error on BuildInbRdvSatDeleteQuery build: %v", err)
6565
}
6666

67-
if query != "UPDATE rdv.TestTable_sat SET delete_dts = NOW() WHERE frh NOT IN (SELECT frh FROM rdv.TestTable_sat_cur) AND delete_dts IS NULL;" {
67+
// if query != "UPDATE rdv.TestTable_sat SET delete_dts = NOW() WHERE frh NOT IN (SELECT frh FROM rdv.TestTable_sat_cur) AND delete_dts IS NULL;" {
68+
// t.Fatalf("BuildInbRdvSatDeleteQuery incorrect: %v", query)
69+
// }
70+
71+
if query != "UPDATE rdv.TestTable_sat SET delete_dts = NOW() FROM rdv.TestTable_sat AS s LEFT JOIN rdv.TestTable_sat_cur AS sc on s.frh = sc.frh WHERE s.frh IS NULL;" {
6872
t.Fatalf("BuildInbRdvSatDeleteQuery incorrect: %v", query)
6973
}
7074
}
@@ -77,7 +81,11 @@ func TestBuildInbRdvSatInsertQuery(t *testing.T) {
7781
t.Fatalf("Error on BuildInbRdvSatInsertQuery build: %v", err)
7882
}
7983

80-
if query != "INSERT INTO rdv.TestTable_sat SELECT * FROM rdv.TestTable_sat_cur WHERE frh NOT IN (SELECT frh FROM rdv.TestTable_sat);" {
84+
// if query != "INSERT INTO rdv.TestTable_sat SELECT * FROM rdv.TestTable_sat_cur WHERE frh NOT IN (SELECT frh FROM rdv.TestTable_sat);" {
85+
// t.Fatalf("BuildInbRdvSatInsertQuery incorrect: %v", query)
86+
// }
87+
if query != "INSERT INTO rdv.TestTable_sat SELECT sc.* FROM rdv.TestTable_sat_cur AS sc LEFT JOIN rdv.TestTable_sat AS s ON s.frh = sc.frh WHERE s.frh IS NULL;" {
8188
t.Fatalf("BuildInbRdvSatInsertQuery incorrect: %v", query)
8289
}
90+
8391
}

pkg/pipeline/inbrdv/RdvPipelineBuilder_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ func TestRdvPipeline_buildSatMarkDelete(t *testing.T) {
140140
wantErr bool
141141
}{
142142
{name: "SatCurDeleteTest1", fields: fields{nil, ""}, want: nil, wantErr: true},
143-
{name: "SatCurDeleteTest2", fields: fields{nil, "testTableDelete"}, want: processors.NewSQLExecutor(nil, "UPDATE rdv.testTableDelete_sat SET delete_dts = NOW() WHERE frh NOT IN (SELECT frh FROM rdv.testTableDelete_sat_cur) AND delete_dts IS NULL;"), wantErr: false},
143+
{name: "SatCurDeleteTest2", fields: fields{nil, "testTableDelete"}, want: processors.NewSQLExecutor(nil, "UPDATE rdv.testTableDelete_sat SET delete_dts = NOW() FROM rdv.testTableDelete_sat AS s LEFT JOIN rdv.testTableDelete_sat_cur AS sc on s.frh = sc.frh WHERE s.frh IS NULL;"), wantErr: false},
144144
}
145145
for _, tt := range tests {
146146
t.Run(tt.name, func(t *testing.T) {
@@ -175,7 +175,7 @@ func TestRdvPipeline_buildSatInsertExecutor(t *testing.T) {
175175
wantErr bool
176176
}{
177177
{name: "SatInsertTest1", fields: fields{nil, ""}, want: nil, wantErr: true},
178-
{name: "SatInsertTest2", fields: fields{nil, "testTableSatInsert"}, want: processors.NewSQLExecutor(nil, "INSERT INTO rdv.testTableSatInsert_sat SELECT * FROM rdv.testTableSatInsert_sat_cur WHERE frh NOT IN (SELECT frh FROM rdv.testTableSatInsert_sat);"), wantErr: false},
178+
{name: "SatInsertTest2", fields: fields{nil, "testTableSatInsert"}, want: processors.NewSQLExecutor(nil, "INSERT INTO rdv.testTableSatInsert_sat SELECT sc.* FROM rdv.testTableSatInsert_sat_cur AS sc LEFT JOIN rdv.testTableSatInsert_sat AS s ON s.frh = sc.frh WHERE s.frh IS NULL;"), wantErr: false},
179179
}
180180
for _, tt := range tests {
181181
t.Run(tt.name, func(t *testing.T) {

0 commit comments

Comments
 (0)