我从ajax调用WCF服务时遇到问题。
我向WCF传递一个对象数组,对于每个对象,我需要通过ADO.NET调用存储过程。
问题是当我在循环中调用此过程时,应用程序开始滞后。
你能告诉我,怎么可能解决它?
答案 0 :(得分:1)
是否可以修改存储过程?通过修改存储过程以使用table-valued parameters,您可能会获得显着的性能优势。这样,您不必为每个对象调用一次存储过程,而是调用存储过程一次并传递所有对象。
链接文档很全面,但您可能需要谷歌搜索其他示例。第一次使用它们时,你必须学习一些新的步骤,但是一旦你完成它,它就是这种场景的强大工具。
在SQL服务器上,您可以创建一个新的表值类型。语法与定义表非常相似。然后修改存储过程以接收该参数。在您从参数中选择的过程中,就像在表格中一样。
在您的应用程序中,您创建一个DataTable
,它对应于您已定义的表格,然后使用您要发送的数据行填充它。
如果你曾经见过有人做过奇怪的事情来将多个值传递给存储过程(比如使用逗号分隔的字符串),这就是解毒剂。