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