TvDatabase.TvBusinessLayer.OptimizeMySql C# (CSharp) Method

OptimizeMySql() public method

Checks a MySQL table for corruption and optimizes / compacts it. Use this after lots of insert / delete operations.
public OptimizeMySql ( string aTable ) : void
aTable string The table which should be optimized. During the check process it will be locked.
return void
    public void OptimizeMySql(string aTable)
    {
      Stopwatch benchClock = new Stopwatch();
      benchClock.Start();
      MySqlTransaction transact = null;
      try
      {
        string connectString = (ProviderFactory.GetDefaultProvider()).ConnectionString;
        if (string.IsNullOrEmpty(connectString))
        {
          return;
        }

        using (MySqlConnection connection = new MySqlConnection(connectString))
        {
          connection.Open();
          transact = connection.BeginTransaction();
          using (MySqlCommand cmd = new MySqlCommand(string.Format("LOCK TABLES {0} READ;", aTable), connection))
          {
            cmd.ExecuteNonQuery();
          }

          using (MySqlCommand cmd = new MySqlCommand(string.Format("CHECK TABLE {0}", aTable), connection))
          {
            cmd.ExecuteNonQuery();
          }

          using (MySqlCommand cmd = new MySqlCommand(string.Format("UNLOCK TABLES"), connection))
          {
            cmd.ExecuteNonQuery();
          }

          using (MySqlCommand cmd = new MySqlCommand(string.Format("OPTIMIZE TABLE {0}", aTable), connection))
          {
            cmd.ExecuteNonQuery();
          }

          transact.Commit();
          benchClock.Stop();
          Log.Info("BusinessLayer: OptimizeMySql successful - duration: {0}ms",
                   benchClock.ElapsedMilliseconds.ToString());
        }
      }
      catch (Exception ex)
      {
        try
        {
          if (transact != null)
          {
            transact.Rollback();
          }
        }
        catch (Exception ex2)
        {
          Log.Info("BusinessLayer: OptimizeMySql unsuccessful - ROLLBACK - {0}, {1}", ex2.Message, ex2.StackTrace);
        }
        Log.Info("BusinessLayer: OptimizeMySql unsuccessful - {0}, {1}", ex.Message, ex.StackTrace);
      }
    }
TvBusinessLayer