Quantcast
Channel: SQL Server Database Engine forum
Viewing all articles
Browse latest Browse all 12963

How to get rid of 'Worktable' in Statistics IO

$
0
0

Hi,

I'm using Windows Server 2008 R2 with SP1 and SQL Server 2008 with SP1, 64 bit OS, 32 GB RAM, 2.4 GHz (4 Processors).

I have a query in SSMS which has joins among 20 tables (all joins are LEFT OUTER JOINs).

I enabled statistics IO and Graphical Actual execution plan and ran the query. It took around 40 mins to give an output of around94 Lakh records.

When I observed the Statistics IO, I noticed that a Worktable got created which has lot of scan counts and logical reads as below:

Table 'Worktable'. Scan count370494, logical reads156848728, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

My question is, because ofwhich part in query this Worktable got created and how can I get rid of this? I'm not using any ORDER BY or GROUP BY in my query.

I've given the query and Statistics IO for refernce. I shall also post the Text Plan if needed. Please let me know.

Below is the query for reference:

SELECT <Columns List> FROM

Ext_BMX_vwrptopportunityproduct opr
LEFT OUTER JOIN OpportunityDim od
ON opr.OpportunityID = od.OpportunityID
LEFT OUTER JOIN Ext_BMX_VwrptOpportunity o
ON opr.OpportunityID = o.OpportunityID
LEFT OUTER JOIN AccountDim ad
ON od.CRMAccountID = ad.CRMAccountID
LEFT OUTER JOIN EAFSQLSG.DBO.Ext_BMX_VwrptOpportunityPartner op
ON opr.OpportunityID = op.OpportunityID
LEFT OUTER JOIN PartnerDim p
ON op.SiebelPartnerId = p.PartnerID
LEFT OUTER JOIN Ext_BMX_VwrptOpportunityProductAllocated opa
ON opr.OpportunityID = opa.OpportunityID
AND opr.revsumcategoryid = opa.revsumcategoryid
AND opr.ProductFamilyID = opa.ProductFamilyID
AND opr.versionname = opa.versionname
AND opr.productgroupid = opa.productgroupid
LEFT OUTER JOIN #vwEAFMALView_ATU mal
ON opr.TPOrgId = mal.TPAccountID
LEFT OUTER JOIN Ext_BMX_VwdAccountTeamUnit atu
ON mal.ATUName = atu.AccountTeamUnitName
LEFT OUTER JOIN Ext_BMX_VwdAccountByManagedTerritory mt
ON od.CRMAccountID = mt.AccountID
LEFT OUTER JOIN Ext_BMX_VwdAccount a
ON ad.CRMAccountID = a.AccountID
LEFT OUTER JOIN ProductVersionDim pvd
ON opa.VersionName = pvd.ProductVersionName
LEFT OUTER JOIN Ext_BMX_VwdLicenseSubType lst
ON o.LicenseSubTypeName = lst.LicenseSubTypeName
LEFT OUTER JOIN ext_MSSales_DetailPricingLevel dpl
ON lst.DetailPricingLevelName = dpl.DetailPricingLevelName
LEFT OUTER JOIN (SELECT DISTINCT
TPAccountID,
SubsidiaryID,
SubsidiaryName
FROM
Ext_BMX_VwdTPAccount tp
INNER JOIN ext_BMX_vwdcompensationperspectivehierarchy cph
ON tp.subsidiarycompensationperspectiveid = cph.subsidiaryid) tpsub
ON opr.TPOrgID = tpsub.TPAccountID
LEFT OUTER JOIN (SELECT
er.FiscalMonthID,
cp.compensationperspectivename AS SubsidiaryName,
er.constantdollarexchangerate,
er.exchangerate
FROM
Ext_BMX_vwsefexchangerate er
INNER JOIN Ext_BMX_VwdCompensationPerspective cp
ON er.CreditedSubsidiaryID = cp.SourceCompensationPerspectiveID
WHERE
CompensationPerspectiveLevelCode = 'SUB') exclosed
ON (tpsub.SubsidiaryName = exclosed.SubsidiaryName)
AND (o.ClosedFiscalMonthID = exclosed.FiscalMonthID)
LEFT OUTER JOIN (SELECT
er.FiscalMonthID,
cp.compensationperspectivename AS SubsidiaryName,
er.constantdollarexchangerate,
er.exchangerate
FROM
Ext_BMX_vwsefexchangerate er
INNER JOIN Ext_BMX_VwdCompensationPerspective cp
ON er.CreditedSubsidiaryID = cp.SourceCompensationPerspectiveID
WHERE
CompensationPerspectiveLevelCode = 'SUB') excurrent
ON (tpsub.SubsidiaryName = excurrent.SubsidiaryName)
AND (o.ClosedFiscalMonthID = 268)

Statistics IO for the above query is given below:

Table 'Ext_BMX_vwdAccountByManagedTerritory'. Scan count 9, logical reads 7966, physical reads 0, read-ahead reads 7, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Ext_BMX_vwdCompensationPerspective'. Scan count 18, logical reads 38, physical reads 0, read-ahead reads 5, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Ext_BMX_vwSEFExchangeRate'. Scan count 18, logical reads 944, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Worktable'. Scan count 370494, logical reads 156848728, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Ext_BMX_vwdTPAccount'. Scan count 9, logical reads 1839, physical reads 38, read-ahead reads 1693, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Ext_BMX_vwdCompensationPerspectiveHierarchy'. Scan count 9, logical reads 58, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Ext_BMX_vwdLicenseSubType'. Scan count 1, logical reads 5, physical reads 0, read-ahead reads 7, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Ext_MSSales_DetailPricingLevel'. Scan count 9, logical reads 13, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'ProductVersionDim'. Scan count 9, logical reads 1, physical reads 0, read-ahead reads 2, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Ext_BMX_vwdAccount'. Scan count 9, logical reads 20783, physical reads 3, read-ahead reads 179, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Ext_BMX_vwdAccountTeamUnit'. Scan count 9, logical reads 20, physical reads 0, read-ahead reads 4, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table '#vwEAFMALView_ATU___________________________________________________________________________________________________000000000EC0'. Scan count 9, logical reads 879, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Ext_BMX_vwrptOpportunityProductAllocated'. Scan count 9, logical reads 22418, physical reads 0, read-ahead reads 44, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'PartnerDim'. Scan count 9, logical reads 1238, physical reads 0, read-ahead reads 14, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Ext_BMX_vwrptOpportunityPartner'. Scan count 9, logical reads 5032, physical reads 0, read-ahead reads 8, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'AccountDim'. Scan count 9, logical reads 2928, physical reads 0, read-ahead reads 35, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'OpportunityDim'. Scan count 9, logical reads 6099, physical reads 0, read-ahead reads 22, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Ext_BMX_vwrptOpportunityProduct'. Scan count 9, logical reads 29114, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Ext_BMX_vwrptOpportunity'. Scan count 9, logical reads 93491, physical reads 0, read-ahead reads 9, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Filter_Sector_MSSalesSubSegment'. Scan count 8, logical reads 16, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Table 'Worktable'. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

Please do reply. Thanks...


Viewing all articles
Browse latest Browse all 12963

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>