Почему (и как часто) JDBI генерирует «объясняющие» запросы? - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть интерфейс MyDao, который имеет этот метод (getByTenantId):

@RegisterRowMapper(MyConfigMapper.class)
public interface MyDao {
  [....]
  @SqlQuery("SELECT * FROM " + PostgresTables.MY_CONFIGS + " WHERE tenant_id = :tenantId")
  @RegisterRowMapper(MyConfigListMapper.class)
  List<MyConfig> getByTenantId(@Bind("tenantId") String tenantId);
}

, исследуя, почему этот запрос иногда медленный, я заметил, что мое приложение обращается к базе данных с двумя запросами:

/* MyDao.getByTenantId */ SELECT * FROM public.my_configs WHERE tenant_id = $1

и

EXPLAIN (FORMAT JSON) /* MyDao.getByTenantId */ SELECT * FROM public.my_configs WHERE tenant_id = $1

Я не ожидал "ОБЪЯСНИТЬ". Это выдается каждый раз? Как на самом деле работает JDBI - я ожидал, что он просто выдаст запрос «SELECT».

...