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

  • SEARCH
  • Home
  • 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 7696455
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 31, 20262026-05-31T21:46:59+00:00 2026-05-31T21:46:59+00:00

This query takes about 52 seconds to complete. It appears 82% of the time

  • 0

This query takes about 52 seconds to complete. It appears 82% of the time is spent in the table scan of the orders table. It says the actual number of rows is over 8 million, so my only guess is that it is looping through this table and I’m not good enough with SQL to know why.

The orders table has 19700 rows currently.

SELECT a.DistID, a.BusCtrID, d.FName, d.LName, r.Description 
FROM funcGetDownline( 3 , 1) a
INNER JOIN Distributor d ON a.DistID = d.DistID
INNER JOIN Rank r ON d.RankID = r.RankID
INNER JOIN Orders o ON o.DistID = d.DistID
INNER JOIN orderlines ol ON ol.OrderID = o.OrderID
GROUP BY a.DistID, a.BusCtrID, d.FName, d.LName, r.Description'

funcGetDownline returns a single table returning 4,416 records. If I execute the query just to the orders line it will return 15,361 rows which is should only be returning no more than 4,416.

If I execute the query to the orderlines it will return 20811 rows, again it should not be returning more than 4,416, less is ok, but not more. It executes this in 1 seconds.

When I execute it down to the group row, it takes around 50 seconds to execute this query and returns 4,313 rows which seems to be the correct amount of rows.

Any idea what I am doing incorrectly here?

EDITED AGAIN:

SELECT tmp.distid, tmp.busctrid, tmp.volume, r.description, d.fname, d.lname, d.email
FROM
(
SELECT o.Distid, o.busctrid, SUM (ol.volume * ol.quantity) as Volume
FROM Orders o
INNER JOIN Orderlines ol
 ON ol.orderid = o.orderid
GROUP BY o.distid, o.busctrid
HAVING SUM (ol.volume * ol.quantity) BETWEEN 0 AND 3011
)tmp
INNER JOIN Distributor d
 ON d.distid = tmp.distid
INNER JOIN Rank r
 ON r.rankid = d.rankid
INNER JOIN FuncGetDownline(3,1) a
 ON a.distid = tmp.distid
 AND a.busctrid = tmp.busctrid
ORDER BY tmp.DistID, tmp.BusCtrID 

The above query executes in 1 second or less, I’m nor why this is so much faster. My Senior developer and I probably worked on this for about 60 minutes fine tuning it to be fast.

EDITED LONG LIST:

orders  PK_orders   Orderid
orders  PK_orders   Distid
orders  PK_orders   BusCtrID
orders  PK_orders   ShipAmt
orders  PK_orders   ShipDate
orders  PK_orders   ShipTrack
orders  PK_orders   TaxAmt
orders  PK_orders   invoicetype
orders  PK_orders   Notes
orders  PK_orders   PostAmount
orders  PK_orders   Status
orders  PK_orders   ShippingLine1
orders  PK_orders   ShippingLine2
orders  PK_orders   ShippingCity
orders  PK_orders   ShippingState
orders  PK_orders   ShippingCountry
orders  PK_orders   ShippingPostalCode
orders  PK_orders   EnteredBy
orders  PK_orders   PostFuturePeriod
orders  PK_orders   OrderDate
orders  PK_orders   MO_Ship
orders  PK_orders   ts
orders  PK_orders   ShippingPhone
orders  PK_orders   DatePaid
orders  PK_orders   PublicNotes
orders  PK_orders   LastUpdatedBy
orders  PK_orders   BonusDate
orders  PK_orders   TypeCode
orders  PK_orders   ShippingName
orders  PK_orders   GeoCode
orders  PK_orders   InOutCity
orders  PK_orders   TaxOption
orders  PK_orders   IsCredit
orders  PK_orders   TaxAmt2
orders  PK_orders   Aristo_Status
orders  PK_orders   WarehouseID
orders  PK_orders   ShipCost
orders  PK_orders   Weight
orders  PK_orders   Carrier
orders  PK_orders   Service
orders  PK_orders   OrderExported
orders  PK_orders   ShippingEmail
orders  PK_orders   CreditOrderID
orders  PK_orders   ShipMethod
orders  PK_orders   OrderID2
orders  PK_orders   PartyID
orders  PK_orders   ExportTimeStamp
orders  PK_orders   OrderIP
orders  PK_orders   PromoCode
orders  PK_orders   FirstOrder
Distributor Dist_PK DistID
Distributor Dist_PK Name
Distributor Dist_PK Status
Distributor Dist_PK Rank
Distributor Dist_PK OverRank
Distributor Dist_PK ORankDate
Distributor Dist_PK EnterDate
Distributor Dist_PK RenewalDate
Distributor Dist_PK Password
Distributor Dist_PK RankID
Distributor Dist_PK LName
Distributor Dist_PK FName
Distributor Dist_PK EnteredBy
Distributor Dist_PK MInitial
Distributor Dist_PK Email
Distributor Dist_PK RankDate
Distributor Dist_PK SSN
Distributor Dist_PK URL
Distributor Dist_PK HomePhone
Distributor Dist_PK WorkPhone
Distributor Dist_PK Fax
Distributor Dist_PK BillLine1
Distributor Dist_PK BillLine2
Distributor Dist_PK BillCity
Distributor Dist_PK BillState
Distributor Dist_PK BillPostalCode
Distributor Dist_PK BillCountry
Distributor Dist_PK ShipLine1
Distributor Dist_PK ShipLine2
Distributor Dist_PK ShipCity
Distributor Dist_PK ShipState
Distributor Dist_PK ShipPostalCode
Distributor Dist_PK ShipCountry
Distributor Dist_PK ts
Distributor Dist_PK FirstCycle
Distributor Dist_PK DistFlag1
Distributor Dist_PK DistFlag2
Distributor Dist_PK DistFlag3
Distributor Dist_PK DistFlag4
Distributor Dist_PK DistFlag5
Distributor Dist_PK DistFlag6
Distributor Dist_PK DistFlag7
Distributor Dist_PK HomePhoneExt
Distributor Dist_PK WorkPhoneExt
Distributor Dist_PK FaxExt
Distributor Dist_PK ExtraNumeric1
Distributor Dist_PK ExtraNumeric2
Distributor Dist_PK ExtraNumeric3
Distributor Dist_PK ExtraSring1
Distributor Dist_PK ExtraSring2
Distributor Dist_PK ExtraSring3
Distributor Dist_PK TaxExempt
Distributor Dist_PK txjr
Distributor Dist_PK GeoCode
Distributor Dist_PK InOutCity
Distributor Dist_PK DefaultWarehouse
Distributor Dist_PK TaxAsCustomer
Distributor Dist_PK CellPhone
Distributor Dist_PK PaidAsRank
Distributor Dist_PK TaxID
Distributor Dist_PK BankID
Distributor Dist_PK TrainerID
Distributor Dist_PK Statement
Distributor Dist_PK WebShowName
Distributor Dist_PK WebAddress
Distributor Dist_PK WebHomePhone
Distributor Dist_PK WebWorkPhone
Distributor Dist_PK WebFax
Distributor Dist_PK WebUrl
Distributor Dist_PK WebEmail
Distributor Dist_PK Photo
Distributor Dist_PK WebTemplate
Distributor Dist_PK HTMLEmail
Distributor Dist_PK UserDef1
Distributor Dist_PK UserDef2
Distributor Dist_PK UserDef3
Distributor Dist_PK UserDef4
Distributor Dist_PK UserDef5
Distributor Dist_PK UserDef6
Distributor Dist_PK UserDef7
Distributor Dist_PK UserDef8
Distributor Dist_PK UserDef9
Distributor Dist_PK UserDef10
Distributor Dist_PK UserDef11
Distributor Dist_PK UserDef12
Distributor Dist_PK UserDef13
Distributor Dist_PK UserDef14
Distributor Dist_PK UserDef15
Distributor Dist_PK EnableEcommerce
Distributor Dist_PK BirthDate
Distributor Dist_PK ModifiedBy
Distributor Dist_PK UserName
Distributor Dist_PK LastUpdateDate
Distributor Dist_PK ReceiveCompanyEmail
Distributor Dist_PK ReceiveUplineEmail
Distributor Dist_PK ReceiveUplineMessages
Distributor Dist_PK UserDef16
Distributor Dist_PK UserDef17
Distributor Dist_PK UserDef18
Distributor Dist_PK UserDef19
Distributor Dist_PK UserDef20
Distributor Dist_PK CreatedIP
Distributor Dist_PK UserDef21
Distributor Dist_PK UserDef22
Distributor Dist_PK UserDef23
Distributor Dist_PK OverrideMinChkAmt
Distributor Dist_PK ReceiveSponsorEmail
Distributor Dist_PK ReceiveDownlineActivityEmail
Distributor Dist_PK DefaultLanguage
Distributor Dist_PK DistID2
Distributor Dist_PK ImHandle
Distributor Dist_PK IMType
Distributor Dist_PK ReceivePersonallySponsoredActivityEmail
Distributor Dist_PK EnableWebsite
Distributor Dist_PK DistributorCenterExpireDate
Distributor Dist_PK WebsiteExpireDate
Distributor Dist_PK AutologinSessionID
Distributor Dist_PK RecoverPasswordKey
Distributor Dist_PK PCIUserID
Distributor Dist_PK TLPCountry
Distributor Dist_PK EncryptedSSN
Distributor Dist_PK EncryptedTaxID
Distributor Dist_PK AgreementAccepted
orderlines  PK_orderlines   OrderID
orderlines  PK_orderlines   OrderLineID
orderlines  PK_orderlines   ItemId
orderlines  PK_orderlines   Quantity
orderlines  PK_orderlines   Ship
orderlines  PK_orderlines   Amount
orderlines  PK_orderlines   Tax
orderlines  PK_orderlines   Weight
orderlines  PK_orderlines   StatusDate
orderlines  PK_orderlines   ShipDate
orderlines  PK_orderlines   Status
orderlines  PK_orderlines   Tracking1
orderlines  PK_orderlines   Tracking2
orderlines  PK_orderlines   RetailPrice
orderlines  PK_orderlines   WholesalePrice
orderlines  PK_orderlines   GroupItem
orderlines  PK_orderlines   Volume
orderlines  PK_orderlines   ts
orderlines  PK_orderlines   WarehouseID
orderlines  PK_orderlines   Notes
orderlines  PK_orderlines   ExtraCurrency1
orderlines  PK_orderlines   ExtraCurrency2
orderlines  PK_orderlines   ExtraCurrency3
orderlines  PK_orderlines   TaxRecID
orderlines  PK_orderlines   TrackingShipCo
orderlines  PK_orderlines   TaxRate
orderlines  PK_orderlines   MaxTaxAmt
orderlines  PK_orderlines   MaxOrderAmt
orderlines  PK_orderlines   CustomPrice
orderlines  PK_orderlines   DiscountPrice
orderlines  PK_orderlines   DiscountId
orderlines  PK_orderlines   DiscountDescription
orderlines  PK_orderlines   ShipCost
orderlines  PK_orderlines   Aristo_Status
orderlines  PK_orderlines   First_Time_Orderitem
orderlines  PK_orderlines   AttributeDetail
orderlines  PK_orderlines   Description
orderlines  PK_orderlines   BoxNumber
  • 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-31T21:47:01+00:00Added an answer on May 31, 2026 at 9:47 pm

    Some suggestions:

    • Are the columns in the GROUP BY clause indexed? If not then this will slow the query down.
    • Are the “ID” columns marked as primary keys? If not then they should be. In many modern RDBMSs, columns marked as a primary key are automatically indexes
    • Have you specified indexes on your foreign keys? That is a.DistID, d.rankID, etc. If not, then indexing your FK columns will speed up the query
    • Using a function that returns a table may not be a good idea. If this is being executed in SQL Server, then there is no way for the query optimizer to optimize that part of the query.

    Hope this helps.

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

Sidebar

Related Questions

This query takes ~4 seconds to complete: SELECT DISTINCT resources_resource.id, resources_resource.heading, resources_resource.name, resources_resource.old_name, resources_resource.clean_name,
I'm having a problem with this query that takes several seconds to complete. I
i'm doing a query like this one and it takes 6 seconds to complete
Running this query takes a long time: SELECT host,ip FROM arecords WHERE ip IN
I have a fairly complex query (it takes about 30 seconds to execute) that
I ran a query on about 1,300,000 records in one table. It takes certain
I have a query in my MVC application which takes about 20 seconds to
I have a rather large table that takes about 10-20 seconds to fetch depending
I have a query that looks like this: it takes a list of IDs
Why does this MySQL query take forever (and never finishes) on a table that

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.