Metodo reindex async x evitare timeout( maybe...)

This commit is contained in:
Samuele Locatelli
2023-10-23 20:23:27 +02:00
parent 0761d332cc
commit c4f5ee2c84
4 changed files with 14 additions and 6 deletions
+3 -3
View File
@@ -722,7 +722,7 @@ namespace MP.Data.Controllers
/// <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)
public async Task<bool> ForceDbMaint(bool doExec, bool doUpdStat, bool doSave, int minPgCnt, int minAvgFrag, int maxAvgFragReb)
{
Log.Info($"Inizio ForceDbMaint");
bool fatto = false;
@@ -735,9 +735,9 @@ namespace MP.Data.Controllers
var pMinAvgFrag = new SqlParameter("@min_avg_fragmentation_in_percent", minAvgFrag);
var pMaxAvgFrag = new SqlParameter("@max_avg_fragmentation_per_rebuild", maxAvgFragReb);
var dbResult = dbCtx
var dbResult = await dbCtx
.Database
.ExecuteSqlRaw("EXEC man.stp_Utility_Maintanance");
.ExecuteSqlRawAsync("EXEC man.stp_Utility_Maintanance");
//.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;
}
+1 -1
View File
@@ -790,7 +790,7 @@ namespace MP.SPEC.Data
/// <returns></returns>
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 dbController.ForceDbMaint(doExec, doUpdStat, doSave, minPgCnt, minAvgFrag, maxAvgFragReb);
await FlushCacheFluxLog();
}
+5
View File
@@ -31,9 +31,14 @@
</div>
</div>
<div class="card-body">
@if (isProcessing)
{
<ProgressDisplay RefreshInterval="200" Title="Data Maintenance" MaxVal="@MaxVal" CurrVal="@currVal" NextVal="@nextVal" ExpTimeMSec="@expTimeMsec"></ProgressDisplay>
<LoadingData DisplaySize="LoadingData.CtrlSize.Large" DisplayMode="LoadingData.SpinMode.Growl"></LoadingData>
}
else if (isReindexing)
{
<LoadingData DisplaySize="LoadingData.CtrlSize.Large" DisplayMode="LoadingData.SpinMode.BounceLine"></LoadingData>
}
else
+5 -2
View File
@@ -95,9 +95,11 @@ namespace MP.SPEC.Pages
if (!await JSRuntime.InvokeAsync<bool>("confirm", "Manutenzione Database: si tratta di un operazione che può richiedere un tempo levato sei sicuro di voler procedere?"))
return;
isProcessing = true;
isReindexing = true;
await InvokeAsync(StateHasChanged);
await MDataServ.ForceDbMaint(true, true, true, 1000, 10, 50);
isProcessing = false;
isReindexing = false;
await InvokeAsync(StateHasChanged);
}
protected override async Task OnInitializedAsync()
@@ -221,6 +223,7 @@ namespace MP.SPEC.Pages
private string idxMaccSel { get; set; } = "";
private bool isProcessing { get; set; } = false;
private bool isReindexing { get; set; } = false;
protected double currVal = 0;