Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6383565
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 25, 20262026-05-25T02:39:55+00:00 2026-05-25T02:39:55+00:00

I have the following query, which is doing very little and is an example

  • 0

I have the following query, which is doing very little and is an example of the kind of joins I am doing throughout the system.

select t1.PrimaryKeyId, t1.AdditionalColumnId
from TableOne t1
    join TableTwo t2 on t1.ForeignKeyId = t2.PrimaryKeyId
    join TableThree t3 on t1.PrimaryKeyId = t3.ForeignKeyId
    join TableFour t4 on t3.ForeignKeyId = t4.PrimaryKeyId
    join TableFive t5 on t4.ForeignKeyId = t5.PrimaryKeyId
where 
    t1.StatusId = 1
    and t5.TypeId = 68

There are indexes on all the join columns, however the performance is not great. Inspecting the query plan reveals a lot of Hash Match (Inner Joins) when really I want to see Nested Loop joins.

The number of records in each table is as follows:

select count(*) from TableOne

= 64393

select count(*) from TableTwo

= 87245

select count(*) from TableThree

= 97141

select count(*) from TableFour

= 116480

select count(*) from TableFive

= 62

What is the best way in which to improve the performance of this type of query?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-25T02:39:55+00:00Added an answer on May 25, 2026 at 2:39 am

    First thoughts:

    1. Change to EXISTS (changes equi-join to semi-join)
    2. You need to have indexes on t1.StatusId, t5.TypeId and INCLUDE t1.AdditionalColumnID

    I wouldn’t worry about your join method yet…

    Personally, I’ve never used a JOIN hint. They only work for the data, indexes and statistics you have at that point in time. As these change, your JOIN hint limits the optimiser

    select t1.PrimaryKeyId, t1.AdditionalColumnId
    from
        TableOne t1
    where 
        t1.Status = 1
        AND EXISTS (SELECT *
            FROM
              TableThree t3
              join TableFour t4 on t3.ForeignKeyId = t4.PrimaryKeyId
              join TableFive t5 on t4.ForeignKeyId = t5.PrimaryKeyId
            WHERE
              t1.PrimaryKeyId = t3.ForeignKeyId
              AND
              t5.TypeId = 68)
        AND EXISTS (SELECT *
            FROM
              TableTwo t2
            WHERE
              t1.ForeignKeyId = t2.PrimaryKeyId)
    

    Index for tableOne.. one of

    • (Status, ForeignKeyId) INCLUDE (AdditionalColumnId)
    • (ForeignKeyId, Status) INCLUDE (AdditionalColumnId)

    Index for tableFive… probably (typeID, PrimaryKeyId)

    Edit: updated JOINS and EXISTS to match question fixes

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have the following query which have 1000 rows select staffdiscountstartdate,datediff(day,groupstartdate,staffdiscountstartdate), EmployeeID from tblEmployees
I have the following query which works: SELECT ?page ?lat ?long (bif:st_distance(?geo, bif:st_point(42.883, -72.8981)))
I have the following filter query which is doing an SQL OR statement: results
I currently have the following MySQL query, which executes fine without any errors: SELECT
I have following query which take more than a minute to execute, how can
I have the following query which is working fine, but I also want to
I have the following query which returns a list of questions and the possible
I have the following query which gives me the right results. But it's super
I have the following mysql query which I am running with php like so.
I have the following xpath query which seems to be working but I just

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.