nHibernate及其访问数据库的方式,参数是否考虑了类型/大小?

时间:2009-05-28 15:36:49

标签: performance nhibernate

nHibernate是否会创建包含该列所有详细信息的代码?

我知道使用常规的ado.net,如果你的sql参数包含列详细信息,例如:列名,大小,sqltype,它会提高性能。

2 个答案:

答案 0 :(得分:0)

我还没有对代码进行过深入的分析,但是,似乎确实如此。例如,SqlClientDriver实现了以下方法:

public static void SetParameterSizes(IDataParameterCollection parameters, SqlType[] parameterTypes)
private static void SetDefaultParameterSize(IDbDataParameter dbParam, SqlType sqlType)
private static void SetVariableLengthParameterSize(IDbDataParameter dbParam, SqlType sqlType)
public override IDbCommand GenerateCommand(CommandType type, SqlString sqlString, SqlType[] parameterTypes)
{
    IDbCommand command = base.GenerateCommand(type, sqlString, parameterTypes);
    if (IsPrepareSqlEnabled)
    {
        SetParameterSizes(command.Parameters, parameterTypes);
    }
    return command;
}

如果您确实需要检查此源代码,则可以使用源代码。

答案 1 :(得分:0)

为什么不亲自回答这个问题并使用一个驱动程序来记录并转发所有被Hibernate吐出的SQL。