我从数据库 什么是提高性能的最佳方式约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万条记录的清单。 –