Я создал сводный запрос. Как уменьшить эту скорость запросов в SQL server 2005?
Привет,
Это мой вопрос. Я хочу уменьшить скорость запроса для этого запроса. Как оптимизировать этот запрос?
Declare @Pivv NVarchar(Max), @Query NVarchar(Max), @Pivv1 NVarchar(Max), @Columns NVarchar(Max) Select @Pivv = Coalesce(@Pivv + ',' , '') + Quotename(MatchType + '_' + '_Name'), @Pivv1 = Coalesce(@Pivv1 + ',' , '') + Quotename('HighestRunsAndWicketsIn' + MatchType), @Columns = Isnull(@Columns + ',', '') + 'Max(' + (MatchType + '_' + '_Name') + ') As ' + (MatchType + '_' + '_Name') + ',' + 'Max(' + ('HighestRunsAndWicketsIn' + MatchType) + ') As ' + ('HighestRunsAndWicketsIn' + MatchType) From PlayersCareerBatting t Join PlayersBioDataNew a On t.Id=a.Id Group By MatchType Set @Query= 'Select ''Batting'', ' + @Columns + ' From ( Select MatchType + ''_'' + ''_Name'' As Type1, FirstName + '' '' + MiddleName + '' '' + LastName As Runs1, ''HighestRunsAndWicketsIn'' + MatchType As Type, RunsScored As Runs From ( Select FirstName, MiddleName, LastName, MatchType, RunsScored From ( Select s.Id, FirstName, MiddleName, LastName, MatchType, RunsScored, Row_Number() Over(Partition By MatchType Order By RunsScored Desc) rn From PlayersCareerBatting s Join PlayersBioDataNew a On s.Id=a.Id ) x Where rn=1 ) x2 ) x3 Pivot ( Max(Runs1) For Type1 In (' + @Pivv + ') ) x4 Pivot ( Max(Runs) For Type In (' + @Pivv1 + ') ) x5 Union All Select ''Bowling'', ' + @Columns + ' From ( Select MatchType + ''_'' + ''_Name'' As Type1, FirstName + '' '' + MiddleName + '' '' + LastName As Wickets1, ''HighestRunsAndWicketsIn'' + MatchType As Type, Wickets As Wickets From ( Select FirstName, MiddleName, LastName, MatchType, Wickets From ( Select s.Id, FirstName, MiddleName, LastName, MatchType, Wickets, Row_Number() Over(Partition By MatchType Order By Wickets Desc) rn From PlayersBowlingCareer s Join PlayersBioDataNew a On s.Id=a.Id ) x6 Where rn=1 ) x7 ) x8 Pivot ( Max(Wickets1) For Type1 In (' + @Pivv + ') ) x9 Pivot ( Max(Wickets) For Type In (' + @Pivv1 + ') ) x10' Exec(@Query)
Заранее спасибо
Что я уже пробовал:
На самом деле я проверил некоторые пункты, приведенные в интернете, но он не использует для меня
Manfred Rudolf Bihy
Снижение скорости запроса может быть достигнуто путем усложнения запроса. Поскольку вы не указали, на какой фактор вы хотели бы уменьшить скорость, это довольно трудно сказать.
Это также может быть случай, когда вы просто хотите ускорить свой запрос, но вы не просили об этом. ;)
Maciej Los
Уменьшите количество подзапросов...
CHill60
Виртуальная пятерка!
Maciej Los
Спасибо, Кэролайн. Я думал отправить его в качестве ответа, но ... ..
Giri Bkm
Ой! Извините, но этот запрос сейчас работает медленно. Я хочу выполнить этот запрос еще быстрее
Заранее спасибо