Как оптимизировать и улучшить производительность для следующей хранимой процедуры Sql? Он извлекает большое количество записей, что приводит к снижению производительности.
Столбец также не является кластерным индексатором.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET NOCOUNT ON
GO
- Выбрать все записи из таблицы на основе T
ALTER PROC [dbo].[Usp_SP1]
@T nvarchar(50)
AS
IF @T = 'ABC'
BEGIN
SELECT
xyz as [XYZK],
COALESCE(RTRIM(LTRIM(T)),'') AS T,
COALESCE(RTRIM(LTRIM(V)),'') AS V,
COALESCE(RTRIM(LTRIM(Des)),'') AS Des,
COALESCE(Seq, 0) AS Seq,
COALESCE(Ac,0) AS Ac,
COALESCE(RTRIM(LTRIM(U)),'') AS U,
COALESCE(Ac,0) AS Ac,
COALESCE(L,0) AS _L,
COALESCE(M,0) AS _M,
COALESCE(E,0) AS _E,
COALESCE(S,0) AS _S
FROM tblA WITH (NOLOCK)
WHERE T = @T ORDER BY V, Seq
END
ELSE
BEGIN
SELECT
xyz as [XYZK],
COALESCE(RTRIM(LTRIM(T)),'') AS T,
COALESCE(RTRIM(LTRIM(V)),'') AS V,
COALESCE(RTRIM(LTRIM(Des)),'') AS Des,
COALESCE(Seq, 0) AS Seq,
COALESCE(Ac,0) AS Ac,
COALESCE(RTRIM(LTRIM(U)),'') AS U,
COALESCE(Ac,0) AS Ac,
COALESCE(L,0) AS _L,
COALESCE(M,0) AS _M,
COALESCE(E,0) AS _E,
COALESCE(S,0) AS _S
FROM tblA WITH (NOLOCK)
WHERE T = @T ORDER BY Seq
END
SET NOCOUNT OFF
GO
Для выполнения запроса требуется минимальное время, и его следует оптимизировать.