Member 13956117 Ответов: 2

Производительность Sql - запросов


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 LEFT OUTER JOIN InstrumentMST I 
      ON S.InstID=I.InstID 
       order by SRQNumber Desc


Что я уже пробовал:

выполнение этой хранимой процедуры занимает 18 секунд.как повысить производительность

CHill60

Теперь, когда вы вернулись, чтобы поднять свой пост, вы можете ответить на мои предыдущие вопросы..."Вам действительно нужны 2 lackhs x, сколько строк находится на InstrumentMST для каждой строки на srqmst? Реально, что вы собираетесь делать со всеми этими данными?"

2 Ответов

Рейтинг:
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? Реально, что вы собираетесь делать со всеми этими данными? Найдите способ отфильтровать его.