2009-07-08 12 views

Respuesta

7

No soy dba, así que no puedo darle una buena definición de esquema ... (para mí es solo 'base de datos' en SQL Server).

En NHibernate puede especificar el esquema dos lugares: en los archivos de asignación, en la configuración.

El archivo de asignación le permite especificar el esquema por clase. Esto es bueno cuando tiene clases provenientes de diferentes esquemas en el mismo servidor.

La configuración de SessionFactory le permite especificar un esquema predeterminado (opción default_schema) que se debe aplicar a todas las asignaciones de clases que no establecen explícitamente su esquema. Así que es una captura de todo.

Al leer su enlace parece que esto es beneficioso en el rendimiento porque cuando consulta la tabla "Bar" sin especificar el esquema (por ejemplo, la base de datos es "Foo" para el esquema "Foo.dbo" en SQL Server) el plan de consulta no es t en caché Probablemente esto se deba a que SQL Server intente resolver qué esquema usar en su cadena de conexión (Catálogo inicial, Base de datos, etc.) en lugar de tenerlo explícito en la consulta ("Barra" implícita - no en caché, "Foo.dbo .Bar "explicit - cached).

Una vez más, no soy un DBA por lo que estas definiciones chupan :)

edición:

Aquí hay un enlace a la materia configuración (por NH 1.2 ... que es viejo, pero ... la opción default_schema está allí):

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