Я не 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