我正在读一本Ben Scheirman 的博客文章 http://benscheirman.com/2007/12/blame-nhibernate-why-not关于他为了提高性能而进行的一些 NHibernate 调整。
文章最后有:
第 7 课:始终确保已设置 hibernate.default_schema
他说的是什么意思hibernate.default_schema
?
我不是 dba,所以我不能给你一个很好的模式定义...(对我来说,它只是 SQL Server 中的“数据库”)。
在 NHibernate 中,您可以在两个位置指定模式:在映射文件中、在配置中。
映射文件允许您指定每个类的架构。当您的类来自同一服务器中的不同模式时,这很好。
SessionFactory 配置允许您指定默认架构(default_schema 选项),该架构应应用于未显式设置其架构的所有类映射。所以它是包罗万象的。
从阅读您的链接来看,这似乎对性能有益,因为当您查询表“Bar”而不指定架构时(假设数据库是“Foo”,因此 SQL Server 中的架构“Foo.dbo”),查询计划不会被缓存。这可能是由于 SQL Server 必须尝试解析连接字符串(初始目录、数据库等)要使用的架构,而不是在查询中显式显示它(“Bar”隐式 - 未缓存,“Foo.dbo”) .Bar”显式 - 已缓存)。
再说一遍,我不是 dba,所以这些定义很糟糕:)
edit:
这是配置内容的链接(对于 NH 1.2 ...这是旧的......但 default_schema 选项在那里):
https://www.hibernate.org/hib_docs/nhibernate/1.2/reference/en/html/session-configuration.html https://www.hibernate.org/hib_docs/nhibernate/1.2/reference/en/html/session-configuration.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)