docs: def get_sql_type(self, instance, counter_name):
          '''
          Return the type of the performance counter so that we can report it to
          Datadog correctly
          If the sql_type is one that needs a base (PERF_RAW_LARGE_FRACTION and
          PERF_AVERAGE_BULK), the name of the base counter will also be returned
          '''
          with self.get_managed_cursor(instance, self.DEFAULT_DB_KEY) as cursor:
              cursor.execute(COUNTER_TYPE_QUERY, (counter_name,))
              (sql_type,) = cursor.fetchone()
              if sql_type == PERF_LARGE_RAW_BASE:
                  self.log.warning("Metric {} is of type Base and shouldn't be reported this way".format(counter_name))
              base_name = None
              if sql_type in [PERF_AVERAGE_BULK, PERF_RAW_LARGE_FRACTION]:
                  # This is an ugly hack. For certains type of metric (PERF_RAW_LARGE_FRACTION
                  # and PERF_AVERAGE_BULK), we need two metrics: the metrics specified and
                  # a base metrics to get the ratio. There is no unique schema so we generate
                  # the possible candidates and we look at which ones exist in the db.
                  candidates = (
                      counter_name + " base",
                      counter_name.replace("(ms)", "base"),
                      counter_name.replace("Avg ", "") + " base",
                  )
                  try:
                      cursor.execute(BASE_NAME_QUERY, candidates)
                      base_name = cursor.fetchone().counter_name.strip()
                      self.log.debug("Got base metric: {} for metric: {}".format(base_name, counter_name))
                  except Exception as e:
                      self.log.warning("Could not get counter_name of base for metric: {}".format(e))
  
          return sql_type, base_name