Рейтинг:
0
Simon_Whale
вторая часть вашего запроса-это выполнение перекрестного соединения (выделено жирным шрифтом). поскольку это может вызвать некоторые над головой из-за того, как это работает.
Declare @InstID int
select @InstID=S.InstID
from SRQMST S
where SRQNumber=@SRQNumber
if(@InstID<>-1)
select
S.*,I.SupplierID,I.ModelNumber,I.SerialNumber,i.InvoiceNumber,i.InvoiceDate,i.PONumber
,i.PODate,i.ExtendedWarranty,i.FreeServiceCount,i.FreeServiceWarranty,i.PEWarranty,i.SalesNoteNumber
from SRQMST S,InstrumentMST I
where S.InstID=I.InstID and SRQNumber=@SRQNumber
Simon_Whale
Затем вам нужно посмотреть на такие вещи, как индексация и другое решение, которое было дано вам OriginalGriff.
CHill60
Я не согласен с тем, что это перекрестное соединение - это очень старомодный способ сделать внутреннее соединение ... смотрите следующую строку
S.InstID=I.InstID
Simon_Whale
у меня есть очевидный вопрос, но было ли это для обоих столов?
вам нужно будет посмотреть на план выполнения запроса, который начнет давать вам некоторое представление.
кроме того, сколько строк возвращается этим запросом?
Simon_Whale
Я думаю, что вы сами нашли потенциальное решение, Можете ли вы сократить количество столбцов в таблице srqmst?
CHill60
Вам действительно нужны 2 lackhs x, сколько строк находится на InstrumentMST для каждой строки на srqmst? Реально, что вы собираетесь делать со всеми этими данными? Найдите способ отфильтровать его.