用于高级搜索的SQL存储过程参数

时间:2018-07-05 14:24:48

标签: stored-procedures table-valued-parameters advanced-search

我们有一个存储过程,该过程已经有大约25个参数。此特定的存储过程用于在不同的模块上执行高级搜索。截至目前,已经为1个模块实现了该功能。但是,存储过程应该具有搜索/扩展不同模块的能力(此处的性能非常重要)。我们正在考虑优化/重构此存储过程。

  1. 将表值类型创建为参数以分组每个模块的所有参数是否是一个好主意?

    创建过程dbo.GetAdvancedSearch     @searchModuleAParams SearchModAParamsType只读,     @searchModuleBParams SearchModBParamsType只读 如 开始

    结束

在这里,searchModuleAParams包含模块A的过滤器参数和值

另一种选择是传递一个包含所有过滤键和值字典的TVP。

如果可以使用表值类型,那么在seach / filter中有效使用它们以获取不同模块数据的方法是什么?任何指针都会有所帮助

还有没有其他更好的方法了?

谢谢。

0 个答案:

没有答案