我從數據庫 什麼是提高性能的最佳方式約500萬記錄的存儲過程返回,」提高性能
Create PROCEDURE [dbo].[GetPhoneNumbers]
@SendersList SendersIdList ReadOnly ,
@MessageList MessageIdList ReadOnly,
@ClientList ClientsIdList ReadOnly AS
select distinct PH.PhoneNumber from XMLImported xmi
inner join @MessageList MessageIdList on xmi.MessageId = MessageIdList.ID
inner join @SendersList SendersIdList on xmi.SenderId = SendersIdList.ID
inner join @ClientList ClientsIdList on xmi.ClientId = ClientsIdList.ID
inner join Phones PH on PH.Id = xmi.PhoneId
我使用用戶定義的數據類型爲每變量,並使用內部聯接的條款insted的,以提高性能,性能略有增加,但仍不能按要求,
我加入指數也爲場
PS。
SendersIdList,MessageIdList,ClientsIdList所有這些是用戶定義的 表類型有一個字段ID,
XMLImported包含約50萬人次的紀錄
任何建議爲解決我的問題?
你看過執行計劃嗎?有沒有可執行的掃描? – Dom84
請添加一個執行計劃,並可能描述您使用的類型。沒有額外的信息,我們不可能提出有用的建議,完全基於您提供的內容。 – SchmitzIT
我的第一個直覺是「不要返回500萬條記錄」 - 如果某個自動化流程正在使用這些記錄,請找到某種方式爲其提供增量更新而不是整個列表。如果這是由人類消耗的,那麼這是錯誤的設計,因爲沒有人會查看500萬條記錄的清單。 –