Ниже приведен запрос. Я хочу улучшить производительность. Пожалуйста, руководство меняВопрос о производительности TSql
Declare @guidTenantId UNIQUEIDENTIFIER
Declare @guidPriceBookId UNIQUEIDENTIFIER
Declare @strTextSearch nvarchar(100) = NULL
Declare @bitHasProdServTemplate bit = 0
DECLARE @guidPriceBookLineRelation UNIQUEIDENTIFIER
DECLARE @guidProductRelation UNIQUEIDENTIFIER
declare @guidProdServiceTemplateContext UNIQUEIDENTIFIER
BEGIN
SELECT
TB.PBL_IT_GUID,
TB.PBL_TN_GUID,
TB.PBL_LineContext,
TB.PBL_UnitofMeasure,
TB.PBL_PriceType,
TB.PBL_Price,
TB.PBL_StartDate,
TB.PBL_EndDate,
PR_IT_GUID,
IT_Name,
PR_ProductNumber,
PR_MVA
FROM
(
SELECT IR_IT_GUID_TO,IR_CLSID,TA.PBL_IT_GUID,
TA.PBL_TN_GUID,
TA.PBL_LineContext,
TA.PBL_UnitofMeasure,
TA.PBL_PriceType,
TA.PBL_Price,
TA.PBL_StartDate,
TA.PBL_EndDate
FROM
(
SELECT
PBL_IT_GUID,
PBL_TN_GUID,
PBL_LineContext,
PBL_UnitofMeasure,
PBL_PriceType,
PBL_Price,
PBL_StartDate,
PBL_EndDate
FROM
dbo.PBL_PriceBookLines INNER JOIN IR_ItemRelation ON PBL_IT_GUID = IR_IT_GUID_From
WHERE IR_IT_GUID_To = @guidPriceBookId
AND IR_CLSID = @guidPriceBookLineRelation
AND PBL_TN_GUID = @guidTenantId
) AS TA INNER JOIN IR_ItemRelation ON IR_IT_GUID_From = TA.PBL_IT_GUID
) AS TB
INNER JOIN IT_Item ON IT_Item.IT_GUID = TB.IR_IT_GUID_TO
INNER JOIN dbo.PR_Product ON IT_Item.IT_GUID = PR_IT_GUID
INNER JOIN dbo.IR_ItemRelation [IR] ON [IR].IR_IT_GUID_From = PR_IT_GUID AND [IR].IR_CLSID = @guidProdServiceTemplateContext
WHERE TB.IR_CLSID = @guidProductRelation
AND (@strTextSearch is null OR(@strTextSearch is not null AND(IT_Name LIKE '%'[email protected]+'%')))
END
Вам нужно добавить псевдонимы столбцов в запрос, чтобы было ясно, откуда идут столбцы. –
Что вы уже пробовали? – CPMunich
Настольная структура была бы очень полезной! – CeOnSql