我有一个光标在它的循环中执行此操作:
EXEC dbo.[ProcessHostVendorItems] @ItemId = @ItemId, @VendorNo =... etc
是否有任何好处(可能通过缓存查询计划?)将其更改为:
DECLARE @SQL = "dbo.[ProcessHostVendorItems] @ItemId = @ItemId, @VendorNo =... etc"
sp_executesql @sql
我认为它不会有多大帮助,因为存储过程通常比内联SQL快,对吧?我只是在我的'核心'中遇到我能够/不能接触到的开发限制因此,我需要尽可能地弥补性能。
这个SP定期在一个非常大的游标中受到重创,因此,即使是微薄的性能提升也是一个优势。