ahmed salah

ahmed salah

  • 1.1k
  • 507
  • 31.4k

How to reduce high cost of sort on execution plan ?

Sep 10 2022 12:40 PM

I work on sql server 2019 i face issue i can't reduce high cost of sort it reach to 86 percent


so How to reduce it please


additionally it take too much time to execute it .


it take 6:06 minutes


execution plan as below :

execution plan

statment that make issue

select a.RecomendationId,cast(STRING_AGG(cast(f1.FeatureValue as varchar(300)) ,'|')  WITHIN GROUP(ORDER BY f1.FeatureId ASC)as varchar(300))  AS DiffFeatures into ExtractReports.dbo.TechnologyOriginalFeaturesEqual from extractreports.dbo.partsrecomendationActive a with(nolock)inner join ExtractReports.dbo.TechnologyPlPartsFeaturValuesOrg f1 with(nolock) on f1.partid=a.OrignalPartIdinner join [Technology].Receipe Ft WITH(NOLOCK) on ft.featureid=f1.featureid and ft.operatorid=1group by a.RecomendationId

statment execution take too much time to execute
ddl with indexes

create table ExtractReports.dbo.TechnologyPlPartsFeaturValuesOrg(ID int identity(1,1),PartId int,FeatureID int,FeatureName varchar(200),FeatureValue varchar(200))ALTER TABLE ExtractReports.dbo.TechnologyPlPartsFeaturValuesOrgADD CONSTRAINT PK_TechnologyPlPartsFeaturValuesOrg PRIMARY KEY (ID);create index partidoriginalParts_ix on ExtractReports.dbo.TechnologyPlPartsFeaturValuesOrg(partid)create index FlagRecomendationorg_ix on ExtractReports.dbo.TechnologyPlPartsFeaturValuesOrg(featureid,FeatureValue)include(partid)create table extractreports.dbo.partsrecomendationActive(RecomendationId int identity(1,1),RecomendationPartId int,OrignalPartId int)create clustered index recomendations_ix on extractreports.dbo.partsrecomendationActive(RecomendationId)create nonclustered index recomendationsparts_ix on extractreports.dbo.partsrecomendationActive(RecomendationPartId)create nonclustered index recomendationsoriginal_ix on extractreports.dbo.partsrecomendationActive(OrignalPartId)CREATE TABLE [Technology].[Receipe]([ReceipeID] [int] IDENTITY(1,1) NOT NULL,[PLID] [int] NULL,[FeatureID] [int] NULL,[OperatorID] [int] NULL,[FeatureTypeID] [int] NULL,PRIMARY KEY CLUSTERED ([ReceipeID] ASC))

 


Answers (1)