我正在开发一个针对数据库执行任意脚本的 .NET 程序。
当一位同事开始编写数据库访问代码时,他只需将一个命令对象暴露给应用程序的其余部分,该命令对象将在每个语句中重复使用(设置CommandText
/ Type
、调用ExecuteNonQuery()
等)。
我想这对于重复的、相同的语句来说是一个很大的性能损失,因为它们每次都被重新解析。
不过,我想知道的是:如果每个语句都与前一个语句不同(不仅参数不同,而且语句完全不同),这也会降低执行速度吗?我无法在文档中轻松找到答案。
顺便说一句,使用的 RDBMS 是 Oracle,但我想这个问题并不是特定于数据库的。
PS 我知道暴露同一个Command
对象不是线程安全的,但这不是问题。