"Błąd wewnętrzny: Osiągnięto limit usług ekspresowych. Poszukaj potencjalnie złożonych wyrażeń w zapytaniu i spróbuj je uprościć."SQL: Błąd, osiągnięto limit usług wyrażania?
Czy ktoś widział to wcześniej i znalazł dobre obejście tego problemu?
Udało mi się obejść ten problem, dzieląc moje zapytanie SQL na dwie części w zasadzie i pisząc pierwsze zapytanie SQL do tabeli tymczasowej, a druga część, nowa instrukcja wyboru SQL, wybiera z tabeli tymczasowej i używa dużo CROSS APPLY operator do obliczenia kaskadowych kolumn obliczeniowych.
Jest to przykład tego, jak wygląda drugich częściowych ale używam dużo więcej Krzyż applys produkować nowe kolumny, które są obliczenia:
Select * from #tempTable
cross apply
(
select HmmLowestSalePrice =
round(((OurSellingPrice + 1.5)/0.95) - (CompetitorsLowestSalePrice) + 0.08, 2)
) as HmmLowestSalePrice
cross apply
(
select checkLowestSP =
case
when adjust = 'No Room' then 'No Room'
when OrginalTestSalePrice >= CompetitorsLowestSalePrice then 'Minus'
when OrginalTeslSalePrice < CompetitorsLowestSalePrice then 'Ok'
end
) as checkLowestSP
cross apply
(
select AdjustFinalNewTestSP =
case
when FinalNewTestShipping < 0 Then NewTestSalePrice - (FinalNewTestShipping)
when FinalNewTestShipping >= 0 Then NewTestSalePrice
end
) as AdjustFinalNewTestSP
cross apply
(
select CheckFinalSalePriceWithWP =
case
when round(NewAdminSalePrice, 2) >= round(wholePrice, 2) then 'Ok'
when round(NewAdminSalePrice, 2) < round(wholePrice, 2) then 'Check'
end
) as CheckFinalPriceWithWP
DROP TABLE #tempTable
moim celem, aby umieścić to w raporcie sql i działa dobrze, jeśli istnieje tylko jeden użytkownik, ponieważ #tempTable
zostanie utworzony i usunięty w tym samym wykonaniu, a wyniki zostaną poprawnie wyświetlone w raporcie. Ale w przyszłości, jeśli istnieją współbieżni użytkownicy, obawiam się, że będą pisać do tego samego #tempTable
, który wpłynie na wyniki?
Sprawdziłem, wprowadzając to do procedur przechowywanych, ale nadal otrzymuję komunikat o błędzie powyżej.
marzę o świecie, w którym nie mamy całkowicie byłaby nasz kod, aby dopasować się niejasne, archaiczny limitu. Jeśli podzielasz to marzenie, zagłosuj na moją opinię na temat usługi Connect: https://connect.microsoft.com/SQLServer/feedback/details/789949/sql-increase-expression-services-limit-for-complex-nested-in-clauses –