我正在编写一个 Silverlight 客户端,它通过我也在开发的 ASP.NET 2.0 Web 服务与 SQL 数据库进行交互。其中一项服务需要返回存储过程的结果,并且运行良好。但是,在执行存储过程之前,需要从不同的位置检索存储过程的一个参数,并且这个对数据库的额外请求会导致明显的减速(当我缓存检索到的值而不是每次调用都获取它时很明显)。
不幸的是,缓存该值对我的情况无效,我宁愿将该值的检索和随后的存储过程执行组合到一个查询中,以便服务器可以优化请求。但是,我的 SQL 并不强大,而且我一点也不知道该怎么做。
这个值,我们称之为tasktype
,是通过一个键引用的,id
。存储过程getrecords
接受一些参数,包括tasktype
,但可以假设其他参数值在调用查询时是已知的。存储过程返回一个记录表。
谢谢你的帮助。