Skip to content

Too many queries are executed #22

@havotto

Description

@havotto

Looks good, but just executing the query

query {
  conferences{
    id
    name
  }
}

results in a lot of additional queries, with many joins and subselects, only the first one is neccesary:

Hibernate: select conference0_.id as id1_1_, conference0_.version as version2_1_, conference0_.city as city3_1_, conference0_.name as name4_1_ from conference conference0_
Hibernate: select talks0_.conferences_id as conferen2_4_0_, talks0_.talks_id as talks_id1_4_0_, talk1_.id as id1_3_1_, talk1_.version as version2_3_1_, talk1_.summary as summary3_3_1_, talk1_.title as title4_3_1_ from talk_conferences talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.conferences_id=?
Hibernate: select speakers0_.talks_id as talks_id1_5_1_, speakers0_.speakers_id as speakers2_5_1_, person1_.id as id1_2_0_, person1_.version as version2_2_0_, person1_.blog as blog3_2_0_, person1_.github_account as github_a4_2_0_, person1_.name as name5_2_0_ from talk_speakers speakers0_ inner join person person1_ on speakers0_.speakers_id=person1_.id where speakers0_.talks_id in (select talk1_.id from talk_conferences talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.conferences_id=?)
Hibernate: select talks0_.speakers_id as speakers2_5_0_, talks0_.talks_id as talks_id1_5_0_, talk1_.id as id1_3_1_, talk1_.version as version2_3_1_, talk1_.summary as summary3_3_1_, talk1_.title as title4_3_1_ from talk_speakers talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.speakers_id=?
Hibernate: select talks0_.speakers_id as speakers2_5_0_, talks0_.talks_id as talks_id1_5_0_, talk1_.id as id1_3_1_, talk1_.version as version2_3_1_, talk1_.summary as summary3_3_1_, talk1_.title as title4_3_1_ from talk_speakers talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.speakers_id=?
Hibernate: select talks0_.speakers_id as speakers2_5_0_, talks0_.talks_id as talks_id1_5_0_, talk1_.id as id1_3_1_, talk1_.version as version2_3_1_, talk1_.summary as summary3_3_1_, talk1_.title as title4_3_1_ from talk_speakers talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.speakers_id=?
Hibernate: select talks0_.speakers_id as speakers2_5_0_, talks0_.talks_id as talks_id1_5_0_, talk1_.id as id1_3_1_, talk1_.version as version2_3_1_, talk1_.summary as summary3_3_1_, talk1_.title as title4_3_1_ from talk_speakers talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.speakers_id=?
Hibernate: select talks0_.speakers_id as speakers2_5_0_, talks0_.talks_id as talks_id1_5_0_, talk1_.id as id1_3_1_, talk1_.version as version2_3_1_, talk1_.summary as summary3_3_1_, talk1_.title as title4_3_1_ from talk_speakers talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.speakers_id=?
Hibernate: select talks0_.speakers_id as speakers2_5_0_, talks0_.talks_id as talks_id1_5_0_, talk1_.id as id1_3_1_, talk1_.version as version2_3_1_, talk1_.summary as summary3_3_1_, talk1_.title as title4_3_1_ from talk_speakers talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.speakers_id=?
Hibernate: select talks0_.speakers_id as speakers2_5_0_, talks0_.talks_id as talks_id1_5_0_, talk1_.id as id1_3_1_, talk1_.version as version2_3_1_, talk1_.summary as summary3_3_1_, talk1_.title as title4_3_1_ from talk_speakers talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.speakers_id=?
Hibernate: select talks0_.speakers_id as speakers2_5_0_, talks0_.talks_id as talks_id1_5_0_, talk1_.id as id1_3_1_, talk1_.version as version2_3_1_, talk1_.summary as summary3_3_1_, talk1_.title as title4_3_1_ from talk_speakers talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.speakers_id=?
Hibernate: select speakers0_.talks_id as talks_id1_5_1_, speakers0_.speakers_id as speakers2_5_1_, person1_.id as id1_2_0_, person1_.version as version2_2_0_, person1_.blog as blog3_2_0_, person1_.github_account as github_a4_2_0_, person1_.name as name5_2_0_ from talk_speakers speakers0_ inner join person person1_ on speakers0_.speakers_id=person1_.id where speakers0_.talks_id in (select talk1_.id from talk_speakers talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.speakers_id=?)
Hibernate: select conference0_.talks_id as talks_id1_4_1_, conference0_.conferences_id as conferen2_4_1_, conference1_.id as id1_1_0_, conference1_.version as version2_1_0_, conference1_.city as city3_1_0_, conference1_.name as name4_1_0_ from talk_conferences conference0_ inner join conference conference1_ on conference0_.conferences_id=conference1_.id where conference0_.talks_id in (select talk1_.id from talk_speakers talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.speakers_id=?)
Hibernate: select conference0_.talks_id as talks_id1_4_1_, conference0_.conferences_id as conferen2_4_1_, conference1_.id as id1_1_0_, conference1_.version as version2_1_0_, conference1_.city as city3_1_0_, conference1_.name as name4_1_0_ from talk_conferences conference0_ inner join conference conference1_ on conference0_.conferences_id=conference1_.id where conference0_.talks_id in (select talk1_.id from talk_conferences talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.conferences_id=?)
Hibernate: select talks0_.conferences_id as conferen2_4_0_, talks0_.talks_id as talks_id1_4_0_, talk1_.id as id1_3_1_, talk1_.version as version2_3_1_, talk1_.summary as summary3_3_1_, talk1_.title as title4_3_1_ from talk_conferences talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.conferences_id=?
Hibernate: select talks0_.conferences_id as conferen2_4_0_, talks0_.talks_id as talks_id1_4_0_, talk1_.id as id1_3_1_, talk1_.version as version2_3_1_, talk1_.summary as summary3_3_1_, talk1_.title as title4_3_1_ from talk_conferences talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.conferences_id=?
Hibernate: select talks0_.conferences_id as conferen2_4_0_, talks0_.talks_id as talks_id1_4_0_, talk1_.id as id1_3_1_, talk1_.version as version2_3_1_, talk1_.summary as summary3_3_1_, talk1_.title as title4_3_1_ from talk_conferences talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.conferences_id=?
Hibernate: select speakers0_.talks_id as talks_id1_5_1_, speakers0_.speakers_id as speakers2_5_1_, person1_.id as id1_2_0_, person1_.version as version2_2_0_, person1_.blog as blog3_2_0_, person1_.github_account as github_a4_2_0_, person1_.name as name5_2_0_ from talk_speakers speakers0_ inner join person person1_ on speakers0_.speakers_id=person1_.id where speakers0_.talks_id in (select talk1_.id from talk_conferences talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.conferences_id=?)
Hibernate: select talks0_.speakers_id as speakers2_5_0_, talks0_.talks_id as talks_id1_5_0_, talk1_.id as id1_3_1_, talk1_.version as version2_3_1_, talk1_.summary as summary3_3_1_, talk1_.title as title4_3_1_ from talk_speakers talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.speakers_id=?
Hibernate: select talks0_.speakers_id as speakers2_5_0_, talks0_.talks_id as talks_id1_5_0_, talk1_.id as id1_3_1_, talk1_.version as version2_3_1_, talk1_.summary as summary3_3_1_, talk1_.title as title4_3_1_ from talk_speakers talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.speakers_id=?
Hibernate: select conference0_.talks_id as talks_id1_4_1_, conference0_.conferences_id as conferen2_4_1_, conference1_.id as id1_1_0_, conference1_.version as version2_1_0_, conference1_.city as city3_1_0_, conference1_.name as name4_1_0_ from talk_conferences conference0_ inner join conference conference1_ on conference0_.conferences_id=conference1_.id where conference0_.talks_id in (select talk1_.id from talk_conferences talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.conferences_id=?)
Hibernate: select talks0_.conferences_id as conferen2_4_0_, talks0_.talks_id as talks_id1_4_0_, talk1_.id as id1_3_1_, talk1_.version as version2_3_1_, talk1_.summary as summary3_3_1_, talk1_.title as title4_3_1_ from talk_conferences talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.conferences_id=?
Hibernate: select talks0_.conferences_id as conferen2_4_0_, talks0_.talks_id as talks_id1_4_0_, talk1_.id as id1_3_1_, talk1_.version as version2_3_1_, talk1_.summary as summary3_3_1_, talk1_.title as title4_3_1_ from talk_conferences talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.conferences_id=?
Hibernate: select speakers0_.talks_id as talks_id1_5_0_, speakers0_.speakers_id as speakers2_5_0_, person1_.id as id1_2_1_, person1_.version as version2_2_1_, person1_.blog as blog3_2_1_, person1_.github_account as github_a4_2_1_, person1_.name as name5_2_1_ from talk_speakers speakers0_ inner join person person1_ on speakers0_.speakers_id=person1_.id where speakers0_.talks_id=?
Hibernate: select talks0_.speakers_id as speakers2_5_0_, talks0_.talks_id as talks_id1_5_0_, talk1_.id as id1_3_1_, talk1_.version as version2_3_1_, talk1_.summary as summary3_3_1_, talk1_.title as title4_3_1_ from talk_speakers talks0_ inner join talk talk1_ on talks0_.talks_id=talk1_.id where talks0_.speakers_id=?
Hibernate: select conference0_.talks_id as talks_id1_4_0_, conference0_.conferences_id as conferen2_4_0_, conference1_.id as id1_1_1_, conference1_.version as version2_1_1_, conference1_.city as city3_1_1_, conference1_.name as name4_1_1_ from talk_conferences conference0_ inner join conference conference1_ on conference0_.conferences_id=conference1_.id where conference0_.talks_id=?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions