FSN#53649 Performance: tracking buiten de hoofdquery

svn path=/Website/branches/v2017.3/; revision=38339
This commit is contained in:
Jos Groot Lipman
2018-06-27 07:45:54 +00:00
parent c5a2d1c4eb
commit 9c22ad7654

View File

@@ -891,6 +891,7 @@ function res_list (pautfunction, params)
+ " WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key" + " WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key"
+ " AND t.fac_tracking_refkey = rec2.res_rsv_ruimte_key" // res_rsv_ruimte_key uit "sql_select" + " AND t.fac_tracking_refkey = rec2.res_rsv_ruimte_key" // res_rsv_ruimte_key uit "sql_select"
+ " AND sn.fac_srtnotificatie_xmlnode = 'reservering') recentdatum"; + " AND sn.fac_srtnotificatie_xmlnode = 'reservering') recentdatum";
sqltrack = ", TO_DATE('01-01-1970', 'DD-MM-YYYY') recentdatum";
sql = "SELECT " + sql_select + sqltrack sql = "SELECT " + sql_select + sqltrack
+ " FROM (" + sql_rec2 + ") rec2" + " FROM (" + sql_rec2 + ") rec2"
@@ -992,7 +993,19 @@ function res_list (pautfunction, params)
} }
} }
var res_recent = new Date(oRs("recentdatum").Value); //var res_recent = new Date(oRs("recentdatum").Value);
// Ik zou dit liever in de hoofdquery meenemen maar Oracle12 komt daar slecht uit
// Hier per regel ophalen is netto veel sneller
var sql = "SELECT MAX(t.fac_tracking_datum) recentdatum"
+ " FROM fac_tracking t"
+ " , fac_srtnotificatie sn"
+ " WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key"
+ " AND t.fac_tracking_refkey = " + oRs("rsv_ruimte_key").Value
+ " AND sn.fac_srtnotificatie_xmlnode = 'reservering'";
var roRs = Oracle.Execute(sql);
var res_recent = new Date(roRs("recentdatum").Value);
roRs.Close();
if (res_recent > recent) if (res_recent > recent)
{ {
rowclass += " updated"; rowclass += " updated";
@@ -2030,6 +2043,7 @@ function res_list (pautfunction, params)
+ " AND t.fac_tracking_refkey = rsv_ruimte_key" // rsv_ruimte_key voor groupres=4 en <=1 + " AND t.fac_tracking_refkey = rsv_ruimte_key" // rsv_ruimte_key voor groupres=4 en <=1
+ " AND sn.fac_srtnotificatie_xmlnode = 'reservering')") + " AND sn.fac_srtnotificatie_xmlnode = 'reservering')")
+ " recentdatum"; + " recentdatum";
sqltrack = ", TO_DATE('01-01-1970', 'DD-MM-YYYY') recentdatum";
sql = "SELECT /*+ opt_param('optimizer_features_enable' '11.2.0.4') */ us.*" sql = "SELECT /*+ opt_param('optimizer_features_enable' '11.2.0.4') */ us.*"
+ sqltrack + sqltrack
+ " FROM (" + sql + ") us " + sql_order; + " FROM (" + sql + ") us " + sql_order;
@@ -2055,6 +2069,17 @@ function res_list (pautfunction, params)
if (groupres == 4) if (groupres == 4)
{ {
var cnt_recent = new Date(oRs("recentdatum").value); var cnt_recent = new Date(oRs("recentdatum").value);
// Ik zou dit liever in de hoofdquery meenemen maar Oracle12 komt daar slecht uit
// Hier per regel ophalen is netto veel sneller
var sql = "SELECT MAX(t.fac_tracking_datum) recentdatum"
+ " FROM fac_tracking t"
+ " , fac_srtnotificatie sn"
+ " WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key"
+ " AND t.fac_tracking_refkey = " + oRs("rsv_ruimte_key").Value
+ " AND sn.fac_srtnotificatie_xmlnode = 'reservering'";
var roRs = Oracle.Execute(sql);
var cnt_recent = new Date(roRs("recentdatum").Value);
if (cnt_recent > recent) if (cnt_recent > recent)
{ {
class1 += " updated "; class1 += " updated ";