【发布时间】:2014-06-10 18:10:29
【问题描述】:
我有一个执行大量解析和插入的存储过程。它针对特定表中的每一行从前端触发。
为了模块化和可读性,我的任务是更改过程,以便在一个存储过程中进行解析并插入到另一个存储过程中。
现在陷入两难境地,我认为最好的方法是拆分存储过程并从原始存储过程中调用不同的存储过程。通过这样做,更改代码所需的时间非常少,但我关心的是对数据库的调用次数。
如果有 N 行,那么之前调用数据库的次数是 N。但是现在基于新方法,调用次数将是 2*N。
另一种方法是将所有表数据写入临时表,然后做必要的事情。这种方式减少了对数据库的调用,但它给ids 带来了另一个问题。改变可能需要几个小时才能完成。
我的问题是,如果我保留原来的逻辑并将它们拆分成多个存储过程,它对性能的影响会有多大?
前端的行数通常不会超过 100。
谢谢。
【问题讨论】:
-
“模块化和可读性”是导致性能下降的必然方式,至少在 T-SQL 中是这样。
-
如果由我来决定,我会保持原样,因为它可以在几秒钟内完成工作,但这是必须完成的。
标签: sql sql-server stored-procedures