Sql server 2005 我如何启用";“准备好的报表”;在NHibernate中使用SQL Server 2005以及如何验证它?

Sql server 2005 我如何启用";“准备好的报表”;在NHibernate中使用SQL Server 2005以及如何验证它?,sql-server-2005,nhibernate,prepared-statement,Sql Server 2005,Nhibernate,Prepared Statement,我的配置如下所示: <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" > <session-factory name="kvws.kist.suche.dbadapter.nhentities"> <!-- Driver --> <property name="connection.driver_class">NHibernate.Driver.

我的配置如下所示:

<hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >
  <session-factory name="kvws.kist.suche.dbadapter.nhentities">
    <!-- Driver -->
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
    <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>

    <!-- DB-Connection settings -->
    <property name="connection.connection_string">
    ...
    </property>

    <property name="adonet.batch_size">10</property>
    <property name="show_sql">true</property>
    <property name="format_sql">true</property>
    <property name="prepare_sql">true</property>
    <property name="command_timeout">0</property>

    <!-- other settings -->
    <!-- using a proxy is mandantory, LinFu is easiest to setup (no setup...) -->
    <property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
  </session-factory>
</hibernate-configuration>

NHibernate.Driver.SqlClientDriver
NHibernate.dialogue.mssql2005dialogue
...
10
真的
真的
真的
0
NHibernate.ByteCode.LinFu.ProxyFactoryFactory,NHibernate.ByteCode.LinFu
我的印象是
prepare\u sql
的设置确保了在NHibernate中使用prepared语句。然而,它并没有这种“感觉”

如何测试/查看是否使用了“准备好的声明”

上述设置是否正确用于“准备好的声明”


其他设置会干扰执行吗?

我认为您的配置文件正确。我知道没有其他设置会覆盖prepare_sql值。我所知道的证明它正常工作的唯一方法是使用Sql Profiler查看执行计划是否被缓存/重用


需要注意的一点是,您需要指定可变长度的参数(varchar等)的大小。有关这方面的更多信息,请参阅本文:

感谢您提供了指向Sql Profiler的指针-我倾向于忘记这一点。