SPEC:
- Completata procedura adv x ricalcolo FluxLog
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user