diff --git a/MP.Data/Controllers/MpSpecController.cs b/MP.Data/Controllers/MpSpecController.cs
index cb420ac9..ddf75ff4 100644
--- a/MP.Data/Controllers/MpSpecController.cs
+++ b/MP.Data/Controllers/MpSpecController.cs
@@ -552,7 +552,7 @@ namespace MP.Data.Controllers
///
///
///
- public async Task FluxLogDataRedux(string idxMaccSel, List fluxList, Periodo currPeriodo, Enum.ValSelection valMode, Enum.DataInterval intReq)
+ public async Task FluxLogDataRedux(string idxMaccSel, List fluxList, Periodo currPeriodo, Enum.ValSelection valMode, Enum.DataInterval intReq, int maxItem)
{
Log.Info($"Inizio FluxLogDataRedux | idxMaccSel: {idxMaccSel} | periodo: {currPeriodo.Inizio} --> {currPeriodo.Fine}");
bool fatto = false;
@@ -560,13 +560,13 @@ namespace MP.Data.Controllers
switch (intReq)
{
case Enum.DataInterval.minute:
- step = TimeSpan.FromMinutes(1);
+ step = TimeSpan.FromMinutes(1.00/ maxItem);
break;
case Enum.DataInterval.hour:
- step = TimeSpan.FromHours(1);
+ step = TimeSpan.FromHours(1.00 / maxItem);
break;
case Enum.DataInterval.day:
- step = TimeSpan.FromDays(1);
+ step = TimeSpan.FromDays(1.00 / maxItem);
break;
default:
break;
@@ -576,7 +576,6 @@ namespace MP.Data.Controllers
// setup parametri costanti x stored
var pIdxMacchina = new SqlParameter("@IdxMacchina", idxMaccSel);
var pOnlyTest = new SqlParameter("@OnlyTest", false);
- var pDoReIndex = new SqlParameter("@DoReIndex", false); // sarà cambiato solo alla fine x avere un reindex finale x macchina
// processo 1:1 ogni flusso
foreach (var item in fluxList)
@@ -591,7 +590,7 @@ namespace MP.Data.Controllers
DateTime dtCursStart = currPeriodo.Inizio;
DateTime dtCursEnd = dtCursStart.Add(step);
bool setCompleted = false;
- // dbCOntext x ogni singolo flusso
+ // dbContext x ogni singolo flusso
using (var dbCtx = new MoonProContext(_configuration))
{
// li processo per intervallo richiesto, cercando dati nel periodo e selezionando VC
@@ -646,7 +645,7 @@ namespace MP.Data.Controllers
var pDtEnd = new SqlParameter("@DtEnd", slot.Fine);
var dbResult = dbCtx
.Database
- .ExecuteSqlRaw("EXEC man.stp_ReduceFluxLog @IdxMacchina, @CodFlux, @DtStart, @DtEnd, @OnlyTest, @DoReIndex", pIdxMacchina, pCodFlux, pDtStart, pDtEnd, pOnlyTest, pDoReIndex);
+ .ExecuteSqlRaw("EXEC man.stp_ReduceFluxLog @IdxMacchina, @CodFlux, @DtStart, @DtEnd, @OnlyTest", pIdxMacchina, pCodFlux, pDtStart, pDtEnd, pOnlyTest);
}
}
@@ -673,6 +672,39 @@ namespace MP.Data.Controllers
Log.Info($"FINE FluxLogDataRedux | idxMaccSel: {idxMaccSel} | periodo: {currPeriodo.Inizio} --> {currPeriodo.Fine}");
return fatto;
}
+
+ ///
+ /// Stored manutenzione del DB
+ ///
+ /// Esegue realmente il task
+ /// Aggiornamento statistiche
+ /// Salvataggio
+ /// def: 1000
+ /// def: 10
+ /// def: 50
+ ///
+ public bool ForceDbMaint(bool doExec, bool doUpdStat, bool doSave, int minPgCnt, int minAvgFrag, int maxAvgFragReb)
+ {
+ Log.Info($"Inizio ForceDbMaint");
+ bool fatto = false;
+ using (var dbCtx = new MoonProContext(_configuration))
+ {
+ var pFlgExec = new SqlParameter("@FlgExec", doExec ? "Y" : "N");
+ var pFlgUpdStat = new SqlParameter("@FlgUpdStat", doUpdStat ? "Y" : "N");
+ var pFlgSave = new SqlParameter("@FlgSave", doSave ? "Y" : "N");
+ var pMinPgCnt = new SqlParameter("@min_page_count", minPgCnt);
+ var pMinAvgFrag = new SqlParameter("@min_avg_fragmentation_in_percent", minAvgFrag);
+ var pMaxAvgFrag = new SqlParameter("@max_avg_fragmentation_per_rebuild", maxAvgFragReb);
+
+ var dbResult = dbCtx
+ .Database
+ .ExecuteSqlRaw("EXEC man.stp_Utility_Maintanance @FlgExec, @FlgUpdStat, @FlgSave, @min_page_count, @min_avg_fragmentation_in_percent, @max_avg_fragmentation_per_rebuild", pFlgExec, pFlgUpdStat, pFlgSave, pMinPgCnt, pMinAvgFrag, pMaxAvgFrag);
+ fatto = true;
+ }
+ Log.Info($"FINE ForceDbMaint");
+ return fatto;
+ }
+
///
/// Inserimento record risultati deduplica FluxLog
///
diff --git a/MP.Data/Enum.cs b/MP.Data/Enum.cs
index 3e1c6a41..3a5afa29 100644
--- a/MP.Data/Enum.cs
+++ b/MP.Data/Enum.cs
@@ -18,13 +18,13 @@ namespace MP.Data
///
First,
///
- /// Selezione ULTIMO valore del set
- ///
- Last,
- ///
/// Selezione Moda (norma) = elemento centrale
///
- Center
+ Center,
+ ///
+ /// Selezione ULTIMO valore del set
+ ///
+ Last
}
///
/// Intervallo dati (es per definizione quanti dati FluxLog tenere x intervallo
diff --git a/MP.SPEC/Data/MpDataService.cs b/MP.SPEC/Data/MpDataService.cs
index 64ceb227..90cf6134 100644
--- a/MP.SPEC/Data/MpDataService.cs
+++ b/MP.SPEC/Data/MpDataService.cs
@@ -1,4 +1,5 @@
using EgwCoreLib.Utils;
+using Microsoft.AspNetCore.Razor.TagHelpers;
using MP.Data;
using MP.Data.Conf;
using MP.Data.DatabaseModels;
@@ -1775,15 +1776,32 @@ namespace MP.SPEC.Data
///
/// Funzione di Data Reduction x FluxLog
///
- ///
- ///
- ///
- ///
- ///
+ /// Macchina
+ /// Elenco FL da processare
+ /// Periodo
+ /// modalità sel valore
+ /// intervallo di analisi
+ /// max num per intervallo
///
- public async Task FluxLogDataRedux(string idxMaccSel, List fluxList, DtUtils.Periodo currPeriodo, ValSelection valMode, DataInterval intReq)
+ public async Task FluxLogDataRedux(string idxMaccSel, List fluxList, DtUtils.Periodo currPeriodo, ValSelection valMode, DataInterval intReq, int maxItem)
{
- await dbController.FluxLogDataRedux(idxMaccSel, fluxList, currPeriodo, valMode, intReq);
+ await dbController.FluxLogDataRedux(idxMaccSel, fluxList, currPeriodo, valMode, intReq, maxItem);
+ await FlushCacheFluxLog();
+ }
+
+ ///
+ /// Stored manutenzione del DB
+ ///
+ /// Esegue realmente il task
+ /// Aggiornamento statistiche
+ /// Salvataggio
+ /// def: 1000
+ /// def: 10
+ /// def: 50
+ ///
+ public async Task ForceDbMaint(bool doExec = true, bool doUpdStat = true, bool doSave = true, int minPgCnt = 1000, int minAvgFrag = 10, int maxAvgFragReb = 50)
+ {
+ dbController.ForceDbMaint(doExec, doUpdStat, doSave, minPgCnt, minAvgFrag, maxAvgFragReb);
await FlushCacheFluxLog();
}
diff --git a/MP.SPEC/MP.SPEC.csproj b/MP.SPEC/MP.SPEC.csproj
index eefa302b..0e53782a 100644
--- a/MP.SPEC/MP.SPEC.csproj
+++ b/MP.SPEC/MP.SPEC.csproj
@@ -5,7 +5,7 @@
enable
enable
MP.SPEC
- 6.16.2310.2112
+ 6.16.2310.2312
diff --git a/MP.SPEC/Pages/FluxLogStatus.razor b/MP.SPEC/Pages/FluxLogStatus.razor
index 372c0e5a..2984c76b 100644
--- a/MP.SPEC/Pages/FluxLogStatus.razor
+++ b/MP.SPEC/Pages/FluxLogStatus.razor
@@ -3,8 +3,8 @@