Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance nHibernate及其访问数据库的方式,参数是否考虑类型/大小?_Performance_Nhibernate - Fatal编程技术网

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

Performance nHibernate及其访问数据库的方式,参数是否考虑类型/大小?,performance,nhibernate,Performance,Nhibernate,nHibernate是否创建了包含列的所有详细信息的代码 我知道,使用常规ado.net,如果您的sql参数包含列详细信息,例如:列名、大小、sqltype,那么它会提高性能。我没有对代码进行深入分析,但是,是的,似乎确实如此。例如,SqlClientDriver实现如下方法: public static void SetParameterSizes(IDataParameterCollection parameters, SqlType[] parameterTypes) private st

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


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

我没有对代码进行深入分析,但是,是的,似乎确实如此。例如,
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;
}

如果您确实需要检查此问题,那么可以使用源代码。

为什么不自己回答这个问题,并使用一个驱动程序记录和转发Hibernate发出的所有SQL