Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2005 Forums
 Transact-SQL (2005)
 Streamline Query

Author  Topic 

rvooys
Starting Member

1 Post

Posted - 2009-12-26 : 00:58:37
Below is the best way I know to accomplish taking records and sorting them into fields, so I can get a summary of each.

This query runs, albeit it slowly, but when I try to put it on my ASP.net application it fails because of the following error

The query has been canceled because the estimated cost of this query (37493570) exceeds the configured threshold of 2000

Any ideas, anything, would be great.

SELECT TOP (100) PERCENT dbo.tblDrawings.Draw_DrawingID, ISNULL(tblManHoursPipe.ManHoursPipe, 0) AS ManHoursPipeNum,
ISNULL(tblManHoursWelds.ManHoursWelds, 0) AS ManHoursWeldsNum, ISNULL(tblManHoursBoltUps.ManHoursBoltUps, 0) AS ManHoursBoltUpsNum,
ISNULL(tblManHoursValve.ManHoursValve, 0) AS ManHoursValveNum, ISNULL(tblManHoursThreaded.ManHoursThreaded, 0) AS ManHoursThreadedNum,
ISNULL(tblManHoursAttach.EarnedManHoursAttach, 0) AS EarnedManHoursAttachNum
FROM dbo.tblDrawings LEFT OUTER JOIN
(SELECT tblDrawingSpools_3.DSpool_DrawingID, vwDrawingSpoolHistorySum_3.Sum_BudgetManHours AS ManHoursThreaded
FROM dbo.tblDrawingSpools AS tblDrawingSpools_3 INNER JOIN
dbo.tblSpools AS tblSpools_3 ON tblDrawingSpools_3.DSpool_SpoolID = tblSpools_3.Spool_SpoolID INNER JOIN
dbo.tblSpoolCategories AS tblSpoolCategories_3 ON tblSpools_3.Spool_SpoolCategoryID = tblSpoolCategories_3.SpoolC_SpoolCategoryID INNER JOIN
dbo.vwDrawingSpoolHistorySum AS vwDrawingSpoolHistorySum_3 ON
tblDrawingSpools_3.DSpool_DrawingSpoolID = vwDrawingSpoolHistorySum_3.DSHi_DrawingSpoolID
WHERE (tblSpoolCategories_3.SpoolC_SpoolCategoryID = 7)) AS tblManHoursThreaded ON
dbo.tblDrawings.Draw_DrawingID = tblManHoursThreaded.DSpool_DrawingID LEFT OUTER JOIN
(SELECT tblDrawingSpools_4.DSpool_DrawingID, vwDrawingSpoolHistorySum_4.Sum_BudgetManHours AS ManHoursValve
FROM dbo.tblDrawingSpools AS tblDrawingSpools_4 INNER JOIN
dbo.tblSpools AS tblSpools_4 ON tblDrawingSpools_4.DSpool_SpoolID = tblSpools_4.Spool_SpoolID INNER JOIN
dbo.tblSpoolCategories AS tblSpoolCategories_4 ON tblSpools_4.Spool_SpoolCategoryID = tblSpoolCategories_4.SpoolC_SpoolCategoryID INNER JOIN
dbo.vwDrawingSpoolHistorySum AS vwDrawingSpoolHistorySum_4 ON
tblDrawingSpools_4.DSpool_DrawingSpoolID = vwDrawingSpoolHistorySum_4.DSHi_DrawingSpoolID
WHERE (tblSpoolCategories_4.SpoolC_SpoolCategoryID = 6)) AS tblManHoursValve ON
dbo.tblDrawings.Draw_DrawingID = tblManHoursValve.DSpool_DrawingID LEFT OUTER JOIN
(SELECT tblDrawingSpools_6.DSpool_DrawingID, vwDrawingSpoolHistorySum_6.Sum_BudgetManHours AS ManHoursWelds
FROM dbo.tblDrawingSpools AS tblDrawingSpools_6 INNER JOIN
dbo.tblSpools AS tblSpools_6 ON tblDrawingSpools_6.DSpool_SpoolID = tblSpools_6.Spool_SpoolID INNER JOIN
dbo.tblSpoolCategories AS tblSpoolCategories_6 ON tblSpools_6.Spool_SpoolCategoryID = tblSpoolCategories_6.SpoolC_SpoolCategoryID INNER JOIN
dbo.vwDrawingSpoolHistorySum AS vwDrawingSpoolHistorySum_6 ON
tblDrawingSpools_6.DSpool_DrawingSpoolID = vwDrawingSpoolHistorySum_6.DSHi_DrawingSpoolID
WHERE (tblSpoolCategories_6.SpoolC_SpoolCategoryID = 2) OR
(tblSpoolCategories_6.SpoolC_SpoolCategoryID = 3) OR
(tblSpoolCategories_6.SpoolC_SpoolCategoryID = 4)) AS tblManHoursWelds ON
dbo.tblDrawings.Draw_DrawingID = tblManHoursWelds.DSpool_DrawingID LEFT OUTER JOIN
(SELECT tblDrawingSpools_5.DSpool_DrawingID, vwDrawingSpoolHistorySum_5.Sum_BudgetManHours AS ManHoursBoltUps
FROM dbo.tblDrawingSpools AS tblDrawingSpools_5 INNER JOIN
dbo.tblSpools AS tblSpools_5 ON tblDrawingSpools_5.DSpool_SpoolID = tblSpools_5.Spool_SpoolID INNER JOIN
dbo.tblSpoolCategories AS tblSpoolCategories_5 ON tblSpools_5.Spool_SpoolCategoryID = tblSpoolCategories_5.SpoolC_SpoolCategoryID INNER JOIN
dbo.vwDrawingSpoolHistorySum AS vwDrawingSpoolHistorySum_5 ON
tblDrawingSpools_5.DSpool_DrawingSpoolID = vwDrawingSpoolHistorySum_5.DSHi_DrawingSpoolID
WHERE (tblSpoolCategories_5.SpoolC_SpoolCategoryID = 6)) AS tblManHoursBoltUps ON
dbo.tblDrawings.Draw_DrawingID = tblManHoursBoltUps.DSpool_DrawingID LEFT OUTER JOIN
(SELECT dbo.tblDrawingSpools.DSpool_DrawingID, dbo.vwDrawingSpoolHistorySum.Sum_BudgetManHours AS ManHoursPipe
FROM dbo.tblDrawingSpools INNER JOIN
dbo.tblSpools ON dbo.tblDrawingSpools.DSpool_SpoolID = dbo.tblSpools.Spool_SpoolID INNER JOIN
dbo.tblSpoolCategories ON dbo.tblSpools.Spool_SpoolCategoryID = dbo.tblSpoolCategories.SpoolC_SpoolCategoryID INNER JOIN
dbo.vwDrawingSpoolHistorySum ON dbo.tblDrawingSpools.DSpool_DrawingSpoolID = dbo.vwDrawingSpoolHistorySum.DSHi_DrawingSpoolID
WHERE (dbo.tblSpoolCategories.SpoolC_SpoolCategoryID = 1)) AS tblManHoursPipe ON
dbo.tblDrawings.Draw_DrawingID = tblManHoursPipe.DSpool_DrawingID LEFT OUTER JOIN
(SELECT tblDrawingSpools_2.DSpool_DrawingID, vwDrawingSpoolHistorySum_2.Sum_EarnedBudgetManHours AS EarnedManHoursAttach
FROM dbo.tblDrawingSpools AS tblDrawingSpools_2 INNER JOIN
dbo.tblSpools AS tblSpools_2 ON tblDrawingSpools_2.DSpool_SpoolID = tblSpools_2.Spool_SpoolID INNER JOIN
dbo.tblSpoolCategories AS tblSpoolCategories_2 ON tblSpools_2.Spool_SpoolCategoryID = tblSpoolCategories_2.SpoolC_SpoolCategoryID INNER JOIN
dbo.vwDrawingSpoolHistorySum AS vwDrawingSpoolHistorySum_2 ON
tblDrawingSpools_2.DSpool_DrawingSpoolID = vwDrawingSpoolHistorySum_2.DSHi_DrawingSpoolID
WHERE (tblSpoolCategories_2.SpoolC_SpoolCategoryID = 8)) AS tblManHoursAttach ON
dbo.tblDrawings.Draw_DrawingID = tblManHoursAttach.DSpool_DrawingID
ORDER BY dbo.tblDrawings.Draw_DrawingID

webfred
Master Smack Fu Yak Hacker

8781 Posts

Posted - 2009-12-26 : 08:39:03
First we should see formatted sql:
SELECT   TOP ( 100 ) PERCENT dbo.tbldrawings.draw_drawingid, 
Isnull(tblmanhourspipe.manhourspipe,0) AS manhourspipenum,
Isnull(tblmanhourswelds.manhourswelds,0) AS manhoursweldsnum,
Isnull(tblmanhoursboltups.manhoursboltups,0) AS manhoursboltupsnum,
Isnull(tblmanhoursvalve.manhoursvalve,0) AS manhoursvalvenum,
Isnull(tblmanhoursthreaded.manhoursthreaded,0) AS manhoursthreadednum,
Isnull(tblmanhoursattach.earnedmanhoursattach,0) AS earnedmanhoursattachnum
FROM dbo.tbldrawings
LEFT OUTER JOIN (SELECT tbldrawingspools_3.dspool_drawingid,
vwdrawingspoolhistorysum_3.sum_budgetmanhours AS manhoursthreaded
FROM dbo.tbldrawingspools AS tbldrawingspools_3
INNER JOIN dbo.tblspools AS tblspools_3
ON tbldrawingspools_3.dspool_spoolid = tblspools_3.spool_spoolid
INNER JOIN dbo.tblspoolcategories AS tblspoolcategories_3
ON tblspools_3.spool_spoolcategoryid = tblspoolcategories_3.spoolc_spoolcategoryid
INNER JOIN dbo.vwdrawingspoolhistorysum AS vwdrawingspoolhistorysum_3
ON tbldrawingspools_3.dspool_drawingspoolid = vwdrawingspoolhistorysum_3.dshi_drawingspoolid
WHERE (tblspoolcategories_3.spoolc_spoolcategoryid = 7)) AS tblmanhoursthreaded
ON dbo.tbldrawings.draw_drawingid = tblmanhoursthreaded.dspool_drawingid
LEFT OUTER JOIN (SELECT tbldrawingspools_4.dspool_drawingid,
vwdrawingspoolhistorysum_4.sum_budgetmanhours AS manhoursvalve
FROM dbo.tbldrawingspools AS tbldrawingspools_4
INNER JOIN dbo.tblspools AS tblspools_4
ON tbldrawingspools_4.dspool_spoolid = tblspools_4.spool_spoolid
INNER JOIN dbo.tblspoolcategories AS tblspoolcategories_4
ON tblspools_4.spool_spoolcategoryid = tblspoolcategories_4.spoolc_spoolcategoryid
INNER JOIN dbo.vwdrawingspoolhistorysum AS vwdrawingspoolhistorysum_4
ON tbldrawingspools_4.dspool_drawingspoolid = vwdrawingspoolhistorysum_4.dshi_drawingspoolid
WHERE (tblspoolcategories_4.spoolc_spoolcategoryid = 6)) AS tblmanhoursvalve
ON dbo.tbldrawings.draw_drawingid = tblmanhoursvalve.dspool_drawingid
LEFT OUTER JOIN (SELECT tbldrawingspools_6.dspool_drawingid,
vwdrawingspoolhistorysum_6.sum_budgetmanhours AS manhourswelds
FROM dbo.tbldrawingspools AS tbldrawingspools_6
INNER JOIN dbo.tblspools AS tblspools_6
ON tbldrawingspools_6.dspool_spoolid = tblspools_6.spool_spoolid
INNER JOIN dbo.tblspoolcategories AS tblspoolcategories_6
ON tblspools_6.spool_spoolcategoryid = tblspoolcategories_6.spoolc_spoolcategoryid
INNER JOIN dbo.vwdrawingspoolhistorysum AS vwdrawingspoolhistorysum_6
ON tbldrawingspools_6.dspool_drawingspoolid = vwdrawingspoolhistorysum_6.dshi_drawingspoolid
WHERE (tblspoolcategories_6.spoolc_spoolcategoryid = 2)
OR (tblspoolcategories_6.spoolc_spoolcategoryid = 3)
OR (tblspoolcategories_6.spoolc_spoolcategoryid = 4)) AS tblmanhourswelds
ON dbo.tbldrawings.draw_drawingid = tblmanhourswelds.dspool_drawingid
LEFT OUTER JOIN (SELECT tbldrawingspools_5.dspool_drawingid,
vwdrawingspoolhistorysum_5.sum_budgetmanhours AS manhoursboltups
FROM dbo.tbldrawingspools AS tbldrawingspools_5
INNER JOIN dbo.tblspools AS tblspools_5
ON tbldrawingspools_5.dspool_spoolid = tblspools_5.spool_spoolid
INNER JOIN dbo.tblspoolcategories AS tblspoolcategories_5
ON tblspools_5.spool_spoolcategoryid = tblspoolcategories_5.spoolc_spoolcategoryid
INNER JOIN dbo.vwdrawingspoolhistorysum AS vwdrawingspoolhistorysum_5
ON tbldrawingspools_5.dspool_drawingspoolid = vwdrawingspoolhistorysum_5.dshi_drawingspoolid
WHERE (tblspoolcategories_5.spoolc_spoolcategoryid = 6)) AS tblmanhoursboltups
ON dbo.tbldrawings.draw_drawingid = tblmanhoursboltups.dspool_drawingid
LEFT OUTER JOIN (SELECT dbo.tbldrawingspools.dspool_drawingid,
dbo.vwdrawingspoolhistorysum.sum_budgetmanhours AS manhourspipe
FROM dbo.tbldrawingspools
INNER JOIN dbo.tblspools
ON dbo.tbldrawingspools.dspool_spoolid = dbo.tblspools.spool_spoolid
INNER JOIN dbo.tblspoolcategories
ON dbo.tblspools.spool_spoolcategoryid = dbo.tblspoolcategories.spoolc_spoolcategoryid
INNER JOIN dbo.vwdrawingspoolhistorysum
ON dbo.tbldrawingspools.dspool_drawingspoolid = dbo.vwdrawingspoolhistorysum.dshi_drawingspoolid
WHERE (dbo.tblspoolcategories.spoolc_spoolcategoryid = 1)) AS tblmanhourspipe
ON dbo.tbldrawings.draw_drawingid = tblmanhourspipe.dspool_drawingid
LEFT OUTER JOIN (SELECT tbldrawingspools_2.dspool_drawingid,
vwdrawingspoolhistorysum_2.sum_earnedbudgetmanhours AS earnedmanhoursattach
FROM dbo.tbldrawingspools AS tbldrawingspools_2
INNER JOIN dbo.tblspools AS tblspools_2
ON tbldrawingspools_2.dspool_spoolid = tblspools_2.spool_spoolid
INNER JOIN dbo.tblspoolcategories AS tblspoolcategories_2
ON tblspools_2.spool_spoolcategoryid = tblspoolcategories_2.spoolc_spoolcategoryid
INNER JOIN dbo.vwdrawingspoolhistorysum AS vwdrawingspoolhistorysum_2
ON tbldrawingspools_2.dspool_drawingspoolid = vwdrawingspoolhistorysum_2.dshi_drawingspoolid
WHERE (tblspoolcategories_2.spoolc_spoolcategoryid = 8)) AS tblmanhoursattach
ON dbo.tbldrawings.draw_drawingid = tblmanhoursattach.dspool_drawingid
ORDER BY dbo.tbldrawings.draw_drawingid



No, you're never too old to Yak'n'Roll if you're too young to die.
Go to Top of Page

jackv
Master Smack Fu Yak Hacker

2179 Posts

Posted - 2009-12-26 : 09:57:21
First thing , could you check if the query governor is enabled , and does it have a limit?

Jack Vamvas
--------------------
http://www.ITjobfeed.com (IT jobs)
Go to Top of Page
   

- Advertisement -