我有一个包含 10 个下拉列表的表单。我们通过在表单加载时对数据库进行 10 次调用来获取这些列表。
我想知道以下 2 种情况下应用程序和 Sql Server 的性能。另请建议最佳方法。
- 为每个执行 10 个请求的下拉列表获取数据
- 创建存储过程,它将获取 10 个表并在数据读取器的 UI 上返回这 10 个表以创建实体(单次命中)
请提出你的看法...
我有一个包含 10 个下拉列表的表单。我们通过在表单加载时对数据库进行 10 次调用来获取这些列表。
我想知道以下 2 种情况下应用程序和 Sql Server 的性能。另请建议最佳方法。
请提出你的看法...
如果您一次性获取数据,即通过调用 proceudre onece 并获取所有十个下拉数据,这很好。但它还取决于您拥有的记录数量和处理您将与每个下拉框绑定的每条记录的时间
选项 1. 易于维护。
1.10 请求不会花费太多 2.假设有一天您只想查询其中的五个,您可以轻松地组合数据部分。如果你把它们放在一个商店过程中,当业务逻辑发生变化时,事情就会变得很困难。
您可以从 sql server 存储过程返回多个表。创建具有多个选择查询的存储过程。例如,如果您的 sp 有 10 个选择查询,它将返回 10 个结果集或表。
几个月前我们遇到了同样的情况,我们选择了选项 2,我们有 5 个数据表从不同的 SP 返回,所以我们制作了一个 SP,有 5 个输出参数。
在这些参数中,我们作为 Input 发送是否需要特定数据表,然后 SP 返回返回特定数据表的索引。
CREATE procedure [dbo].[MySP]
@pTable1 smallint OUTPUT
@pTable2 smallint OUTPUT
AS
DECLARE iLocation smallint = 0;
BEGIN
IF @pTable1 = 1
BEGIN
SELECT * FROM TABLE1;
SET @pTable1 = iLocation;
iLocation = iLocation + 1;
END
END
.....
AND SO ON
我希望它会给你一个更好的主意。