Las geodatabases corporativas utilizan tablas de archivo de registro para mantener listas de registros seleccionados. Los registros se introducen en las tablas de archivos de registro para que la aplicación los utilice posteriormente en las situaciones siguientes:
- Un cliente crea un conjunto de selección de un tamaño determinado (100 registros en ArcMap; 1.000 registros en ArcGIS Pro, 1.000 registros si se solicitan ObjectIDs desde un servicio de entidades).
- Puede conciliarlos o publicarlos en una geodatabase versionada.
- Una aplicación cliente revisa los datos para realizar la edición sin conexión.
Las tablas de archivos de registro almacenan los ObjectID de las entidades seleccionadas para que se puedan volver a visualizar. Esto permite analizar y procesar la información con más rapidez.
Existen tres opciones de archivos de registro: compartidos, basados en sesión y grupos de archivos de registro basados en sesión. Cada opción se describe en una sección individual dentro de este tema.
Las geodatabases en SQL Server usan archivos de registro basados en sesión y creados en la base de datos temporal (tempdb) de forma predeterminada. Esta es la configuración recomendada y debe ser suficiente en la mayoría de los casos. Sin embargo, si desea cambiar la configuración, consulte Modificar la configuración de las tablas de archivos de registro.
Archivos de registro basados en la sesión
Las tablas de datos de archivos de registro basados en sesiones están dedicadas a una sola sesión y pueden contener varios conjuntos de selección (archivos de registro). Cada sesión que se inicia requiere un conjunto de tablas para las selecciones.
Cuándo utilizar archivos de registro basados en la sesión
Si la geodatabase está almacenada en SQL Server, ésta es sin duda la opción más adecuada. En bases de datos locales de SQL Server, es posible crear tablas de archivos de registro basados en sesión en la base de datos tempdb, lo que significa que no hay que administrar tablas en la geodatabase, el registro de transacciones es mínimo y no es necesario otorgar permisos CREATE TABLE a todos los usuarios de la base de datos. Dado que ésta es la configuración predeterminada para geodatabases en bases de datos locales de SQL Server, no es necesario cambiar los ajustes para utilizar esta opción de archivo de registro.
Tablas creadas para archivos de registro basados en la sesión
Con los ajustes predeterminados en SQL Server, se crea una tabla en tempdb con el formato ##SDE_SESSION<SDE_ID >_<DBID>. El identificador <SDE_ID> es el único identificador de sesión de la tabla SDE_process_information. <dbid> es el identificador de base de datos de SQL Server. Esta tabla se trunca cuando la aplicación de conexión borra los archivos de registro y se elimina cuando la sesión se desconecta. Tenga en cuenta que no se pueden ver objetos temporales en el Explorador de objetos en Management Studio.
Si las tablas de archivos de registro basados en sesión se crean directamente en la geodatabase (no en tempdb), se crean tres tablas: SDE_LOGFILES, SDE_LOGFILE_DATA y SDE_SESSION<SDE_ID>. En realidad, la tabla SDE_LOGFILE_DATA no se utiliza en este caso, pero se crea automáticamente. La tabla SDE_LOGFILES almacena información acerca de la selección configurada más una etiqueta de sesión <SDE_ID>, que se incorpora al nombre de la tabla SDE_SESSION. La tabla SDE_SESSION almacena el identificador de entidad de la Id. del conjunto seleccionado y el archivo de registro.
Las tablas SDE_LOGFILES y SDE_LOGFILE_DATA permanecen en la geodatabase. La tabla SDE_LOGFILES se trunca cuando la aplicación de conexión se desconecta. La tabla SDE_SESSION<SDE_ID> se trunca cuando la sesión de aplicación de conexión borra los archivos de registro, y las tablas se eliminan cuando la sesión se desconecta.
Configuración para controlar el almacenamiento de tablas e índices de archivos de registro basados en la sesión
Hay varios parámetros en la palabra clave LOGFILE_DEFAULTS de la tabla sde_dbtune que controlan cómo y dónde se almacenan las tablas de archivos de registro en la base de datos. No es necesario establecerlos para utilizar archivos de registro basados en la sesión, pero puede hacerlo si desea modificar cómo las tablas e índices SDE_LOGFILES, SDE_LOGFILE_DATA y SDE_SESSION se almacenan en la base de datos.
Para SQL Server, se utilizan estos parámetros:
- LD_INDEX_ALL
- LD_STORAGE
- LF_CLUSTER_ID
- LF_CLUSTER_NAME
- LF_INDEX_ID
- LF_INDEX_NAME
- LF_STORAGE
- SESSION_TEMP_TABLE
El parámetro SESSION_TEMP_TABLE debe establecerse en 1 (true) para permitir que la tabla de archivos de registro basada en la sesión se cree en tempdb.
Si cambia el parámetro SESSION_TEMP_TABLE a 0 (falso), se crearán las tablas SDE_LOGFILES, SDE_LOGFILE_DATA y SDE_SESSION<SDE_ID> en el esquema del usuario que se conecta. Esto tiene implicaciones para los privilegios necesarios para el usuario.
Consulte la explicación de estos parámetros en Parámetros de configuración de SQL Server.
Permisos necesarios para archivos de registro basados en la sesión
Si utiliza los ajustes de SQL Server recomendados para bases de datos locales, los usuarios solo necesitan poder conectarse a la base de datos. Sin embargo, si cambia el parámetro SDE_dbtune SESSION_TEMP_TABLE a 0, los usuarios que se conecten requerirán el permiso CREATE TABLE en la base de datos, además de los privilegios CONNECT.
Archivos de registro compartidos
Todas las sesiones que se conectan como el mismo usuario comparten los archivos de registro compartidos. Si tiene varios usuarios conectados con la misma cuenta, todas esas sesiones insertan y eliminan registros en y de la misma tabla de datos de archivo de registro.
Cuándo utilizar archivos de registro compartidos
Solo es necesario utilizar archivos de registro compartidos si no desea crear tablas en tempdb, dispone de una gran cantidad de sesiones simultáneas y cada una se conecta usando una cuenta de usuario individual.
Cuándo no es aconsejable utilizar archivos de registro compartidos
No debe usar archivos de registro compartidos si no desea almacenar tablas de archivos de registro en esquemas de usuarios individuales.
Tablas creadas para archivos de registro compartidos
Las tablas de archivo de registro utilizadas para esta opción son SDE_LOGFILES y SDE_LOGFILE_DATA. Se crean en el esquema del usuario que se conecta la primera vez que este realiza una selección que sobrepasa el umbral de selección.
SDE_LOGFILES almacena información sobre cada conjunto de selección (archivo de registro) que se crea. Las columnas logfile_name y logfile_id de esta tabla identifican de manera exclusiva el nombre del archivo de registro, y la columna logfile_id vincula el registro del archivo de registro a la tabla SDE_LOGFILE_DATA. La tabla SDE_LOGFILE_DATA contiene logfile_data_id y el identificador de entidad para los registros seleccionados.
Todos los registros se eliminan en cuanto se borra el conjunto de selección para evitar que la tabla SDE_LOGFILE_DATA crezca demasiado. La tabla SDE_LOGFILES se trunca cuando termina la sesión. SDE_LOGFILE_DATA y SDE_LOGFILES permanecen en el esquema del usuario.
Permisos necesarios para archivos de registro compartidos
Para crear los objetos de datos requeridos, como las tablas, los usuarios deben contar con privilegios que se lo permitan, ya que las tablas de archivos de registro son propiedad del usuario que se conecta. Esto es necesario aunque el usuario tenga acceso de solo lectura a la geodatabase. Si estos privilegios no se conceden, los usuarios recibirán un mensaje de error la primera vez que creen un conjunto de selección que supere el tamaño de umbral de esa aplicación cliente particular. Sin embargo, una vez que las tablas SDE_LOGFILES y SDE_LOGFILE_DATA estén creadas para un usuario, el administrador de la geodatabase podrá revocar los privilegios.
Por ejemplo, Ian es un urbanista que solo selecciona datos de la geodatabase para realizar análisis relacionados con su trabajo. Por esto, se lo consideraría un usuario de sólo lectura. Sin embargo, para crear las tablas SDE_LOGFILES y SDE_LOGFILE_DATA en la geodatabase corporativa de la ciudad, Ian necesita estar habilitado para crear tablas en la geodatabase.
En lugar de concederle el permiso para crear tablas de manera indefinida, el administrador de la geodatabase pide a Ian que inicie sesión en la geodatabase y realice una selección que exceda el umbral de selección. A continuación, el administrador de la geodatabase revoca los privilegios de Ian para crear tablas.
Los siguientes privilegios son necesarios para utilizar tablas de archivos de registro compartido en SQL Server:
- CONNECT
- CREATE TABLE
Control de almacenamiento opcional de índices y tablas de archivos de registro compartidos
Para SQL Server, se utilizan estos parámetros:
- LD_INDEX_ALL
- LD_STORAGE
- LF_CLUSTER_ID
- LF_CLUSTER_NAME
- LF_INDEX_ID
- LF_INDEX_NAME
- LF_STORAGE
Para obtener más detalles, consulte Parámetros de configuración de SQL Server.
Grupos de archivos de registro que son propiedad del administrador de la geodatabase
El administrador de la geodatabase puede crear un grupo de archivos de registro basados en sesión que otros usuarios pueden revisar y utilizar. No se pueden revisar archivos de registro compartidos desde un grupo de archivos de registro.
El uso de un grupo de archivos de registro evita la necesidad de conceder los permisos de usuarios necesarios para crear objetos en la base de datos.
Cuándo utilizar grupos de archivos de registro
Si no se puede proporcionar a los usuarios la capacidad de crear tablas de archivos de registro en sus propios esquemas se deberá utilizar un grupo de archivos de registro. No obstante, los usuarios todavía necesitarán tener permisos para crear una sesión o conectar con la base de datos.
Cuándo no es aconsejable utilizar grupos de archivos de registro compartidos
En general, utilizar grupos de archivos de registro requiere un poco más de mantenimiento debido a que se debe estimar el número necesario de tablas de archivos de registro, y es posible que tenga que ajustar el tamaño del grupo o el número de grupos utilizados. Recuerde que un grupo grande de archivos de registro o una gran cantidad de grupos de archivos de registro pueden tener un impacto negativo sobre el rendimiento.
Tablas creadas para grupos de archivos de registro
Especifique el número de tablas SDE_LOGPOOL_<table_ID> que la herramienta Configurar tablas de archivos de registro en la geodatabase crea en el esquema del administrador de la geodatabase. Por ejemplo, si especifica cinco tablas, las siguientes tablas se crean en el esquema del administrador de la geodatabase:
- SDE_LOGPOOL_1
- SDE_LOGPOOL_2
- SDE_LOGPOOL_3
- SDE_LOGPOOL_4
- SDE_LOGPOOL_5
Una tabla adicional en el esquema del administrador de la geodatabase, SDE_LOGFILE_POOL, registra el SDE_ID de la sesión y un Id. de tabla. <table_ID> en el nombre de la tabla SDE_LOGPOOL corresponde al valor de la columna table_ID de la tabla SDE_LOGFILE_POOL.
Cada sesión que necesita una tabla de archivos de registro agrega un registro a la tabla SDE_LOGFILE_POOL y la sesión se asigna a una de las tablas SDE_LOGPOOL_<table_ID> Si se crean archivos de registro adicionales con la misma sesión, por ejemplo, si un segundo conjunto de selección de 300 registros se crea en una sesión de ArcMap, los nuevos archivos de registro (conjunto de selección) se agregan a la misma tabla SDE_LOGPOOL.
Cuando se borran archivos de registro, se trunca la tabla SDE_LOGPOOL que se verifica en la sesión. Por ejemplo, si se borra el segundo conjunto de selección en la sesión de ArcMap, los 300 registros se eliminan de la tabla SDE_LOGPOOL pero permanecen los registros para el primer conjunto de selección. Cuando se borra la primera selección, estos registros se quitan de la tabla SDE_LOGPOOL.
Si utiliza un conjunto de archivos de registro independientes, cada archivo de registro crea un nuevo registro en la tabla SDE_LOGFILE_POOL y usa una de las tablas SDE_LOGPOOL. Por ejemplo, si en una única sesión de ArcMap, ha seleccionado (1) todos los negocios con licencia para servir alimentos en una clase de entidad con información sobre negocios y (2) todas las cuencas ubicadas en un radio de un kilómetro de un negocio que sirvió alimentos en una clase de entidad con información del drenaje pluvial, se habrán agregado dos registros a la tabla SDE_LOGFILE_POOL: uno para el conjunto de selección de negocios y otro para el conjunto de selección de cuencas. A cada conjunto de selección se asignará su propia tabla SDE_LOGPOOL.
Si se borra un archivo de registro (un conjunto de selección), se trunca la correspondiente tabla SDE_LOGPOOL.
Permisos necesarios para grupos de archivos de registro
Para utilizar las tablas de archivos de registro en el grupo, sólo es necesario que los usuarios puedan conectar con la base de datos y utilizar los objetos del esquema del administrador de la geodatabase. Por lo tanto, el único permiso que se requiere para utilizar los grupos de tablas de archivos de registro es el permiso CONNECT.
El privilegio CONNECT se otorga por defecto a todos los usuarios; por lo tanto, sólo debe otorgar este permiso de forma explícita si lo revocó de PUBLIC.
Control de almacenamiento opcional de los grupos de archivos de registro
Sólo hay unos pocos parámetros bajo la palabra clave LOGFILE_DEFAULTS de la tabla sde_dbtune que controlen cómo se almacenan las tablas SDE_LOGPOOL<SDE_ID> y sus índices.
Las geodatabases corporativas en SQL Server utilizan los parámetros LD_STORAGE y LD_INDEX_ALL en la tabla SDE_dbtune para establecer el almacenamiento de las tablas SDE_LOGPOOL<SDE_ID> y los correspondientes índices. Estos dos parámetros controlan también el almacenamiento de la tabla e índice SDE_LOGFILE_DATA. Consulte la explicación de estos parámetros en Parámetros de configuración de SQL Server.
No es necesario que configure estos parámetros para utilizar grupos de tablas de archivos de registro, pero puede hacerlo si desea modificar el modo en que las tablas SDE_LOGPOOL<SDE_ID> e índices se almacenan en la base de datos.