- Completata procedura adv x ricalcolo FluxLog
This commit is contained in:
Samuele Locatelli
2023-10-23 12:07:57 +02:00
parent 7f7a3b6f51
commit afd3ec34bb
9 changed files with 181 additions and 73 deletions
+39 -7
View File
@@ -552,7 +552,7 @@ namespace MP.Data.Controllers
/// <param name="valMode"></param>
/// <param name="intReq"></param>
/// <returns></returns>
public async Task<bool> FluxLogDataRedux(string idxMaccSel, List<string> fluxList, Periodo currPeriodo, Enum.ValSelection valMode, Enum.DataInterval intReq)
public async Task<bool> FluxLogDataRedux(string idxMaccSel, List<string> 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;
}
/// <summary>
/// Stored manutenzione del DB
/// </summary>
/// <param name="doExec">Esegue realmente il task</param>
/// <param name="doUpdStat">Aggiornamento statistiche</param>
/// <param name="doSave">Salvataggio</param>
/// <param name="minPgCnt">def: 1000</param>
/// <param name="minAvgFrag">def: 10</param>
/// <param name="maxAvgFragReb">def: 50</param>
/// <returns></returns>
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;
}
/// <summary>
/// Inserimento record risultati deduplica FluxLog
/// </summary>