public void Defragment()
{
using (SetSessionContext())
{
//int passes = int.MaxValue, seconds = int.MaxValue;
//Api.JetDefragment(this.jetSession, this.chainStateDbId, "", ref passes, ref seconds, DefragGrbit.BatchStart);
if (EsentVersion.SupportsWindows81Features)
{
logger.Info("Begin shrinking chain state database");
int actualPages;
Windows8Api.JetResizeDatabase(this.jetSession, this.chainStateDbId, 0, out actualPages, Windows81Grbits.OnlyShrink);
logger.Info($"Finished shrinking chain state database: {(float)actualPages * SystemParameters.DatabasePageSize / 1.MILLION():N0} MB");
}
}
}