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"
+ " AND t.fac_tracking_refkey = rec2.res_rsv_ruimte_key" // res_rsv_ruimte_key uit "sql_select"
+ " AND sn.fac_srtnotificatie_xmlnode = 'reservering') recentdatum";
sqltrack = ", TO_DATE('01-01-1970', 'DD-MM-YYYY') recentdatum";
sql = "SELECT " + sql_select + sqltrack
+ " 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)
{
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 sn.fac_srtnotificatie_xmlnode = 'reservering')")
+ " recentdatum";
sqltrack = ", TO_DATE('01-01-1970', 'DD-MM-YYYY') recentdatum";
sql = "SELECT /*+ opt_param('optimizer_features_enable' '11.2.0.4') */ us.*"
+ sqltrack
+ " FROM (" + sql + ") us " + sql_order;
@@ -2055,6 +2069,17 @@ function res_list (pautfunction, params)
if (groupres == 4)
{
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)
{
class1 += " updated ";