Что означает hibernate.default_schema? - PullRequest
8 голосов
/ 09 июля 2009

Я читал пост в блоге Бена Шейрмана о некоторых изменениях в NHibernate, которые он сделал для повышения производительности.

В конце статьи есть:

Урок № 7. Всегда проверяйте, установлен ли hibernate.default_schema

Что он имеет в виду под hibernate.default_schema?

1 Ответ

7 голосов
/ 09 июля 2009

Я не DBA, поэтому я не могу дать вам хорошее определение схемы ... (для меня это просто "база данных" в SQL Server).

В NHibernate вы можете указать схему в двух местах: в файлах сопоставления, в конфигурации.

Файл сопоставления позволяет вам указать схему для каждого класса. Это хорошо, если у вас есть классы из разных схем на одном сервере.

Конфигурация SessionFactory позволяет вам указать схему по умолчанию (опция default_schema), которая должна применяться ко всем сопоставлениям классов, которые явно не устанавливают свою схему. Так что ловить все.

При чтении вашей ссылки кажется, что это выгодно с точки зрения производительности, потому что когда вы запрашиваете таблицу "Bar" без указания схемы (скажем, база данных - "Foo", поэтому схема "Foo.dbo" в SQL Server), план запроса не кэшируются. Вероятно, это связано с тем, что SQL Server пытается решить, какую схему использовать в строке подключения (исходный каталог, база данных и т. Д.), А не в явном виде в запросе («Bar» неявный, а не кэшированный », Foo.dbo .Bar "явное - кешируется).

Опять же, я не dba, так что эти определения отстой:)

редактирование:

Вот ссылка на материал для настройки (для NH 1.2 ... который старый ... но есть опция default_schema):

https://www.hibernate.org/hib_docs/nhibernate/1.2/reference/en/html/session-configuration.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...