我有获取30个参数并返回一些数字的数据库函数。我有ISqlQuery,其参数如下:
Select * from MyFunction(:p1, :p2, ..., :p30)
当我打电话时:
var result = mySqlQuery.UniqueResult();
需要30秒钟以上,并且出现超时异常。当我使用不带任何参数的ISqlQuery时:
Select * from MyFunction('value1', 'value2', ... 'value30')
我不到3秒。但是在第二种情况下,我认为必须在代码中构建查询,并以其不太优雅的方式构建查询。为什么性能会有如此大的差异?
我使用c#和nhibernate。