Español

Preguntas frecuentes: ¿Cómo han cambiado los índices únicos de los Id. globales administrados en una geodatabase?

Pregunta

Preguntas frecuentes: ¿Cómo han cambiado los índices únicos de los Id. globales administrados en una geodatabase?

Respuesta

Las versiones de software de Esri de los productos ArcGIS Desktop 10.5.1 y ArcGIS Pro 2.0 incorporan cambios fundamentales en comportamiento de los Id. globales administrados en una geodatabase.

¿Qué es un Id. global administrado en una geodatabase?
Un campo Global ID administrado en una geodatabase es una columna UUID no editable que la geodatabase debe rellenar. El campo Global ID se debe agregar mediante herramienta de geoprocesamiento Agregar Id. global, o mediante Python con el siguiente módulo de ArcPy:

AddGlobalIDs_management (in_datasets)
Cambios introducidos
En ArcGIS Desktop 10.5.1 y ArcGIS Pro 2.0, el comportamiento es el siguiente:
  • Agregar Id. global ahora crea un índice único en el campo Global ID para preservar la unicidad entre entidades de una tabla o clase de entidad subyacentes.
Comportamiento de clases versionadas
  • En Registro como versionado, ArcGIS descubre la columna Global ID y crea un índice único en la tabla base de la columna Global ID. No se crea ningún índice nuevo en las tablas Adiciones ni Borrados.
  • Agregar Id. global a una clase registrada como versionada crea un nuevo índice único en el campo Global ID. No se crea ningún índice nuevo en las tablas Adiciones ni Borrados.
Comportamiento de las clases de archivado no versionadas
  • En Habilitar archivado, la columna Global ID se descubre y se crea un índice único en las columnas Global ID y GDB_TO_DATE
  • Agregar Id. global a una clase habilitada y archivada crea un índice único en los campos Global ID y GDB_TO_DATE. La tabla H obtiene un índice no único en la columna Global ID.
El comportamiento se resume en la tabla que aparece a continuación:
Tipo de claseCondición previaOperaciónTipo de índiceNombres de índiceColumnas
No versionada Agregar Id. globalUNIQUEUUID_GLOBALID
No versionadaCon Id. globalHabilitar archivado no versionadoUNIQUEUUID_GLOBALID, GBD_TO_DATE
No versionadaArchivado habilitadoAgregar Id. globalUNIQUEUUID_GLOBALID, GBD_TO_DATE
No versionadaCon Id. globalRegistrar como VersionadoUNIQUEUUID_**GLOBALID
No versionadaCon UUIDRegistrar como VersionadoNONEWINDEX
No versionadaCon Id. global e índice con denominación irregular en Id. globalRegistrar como VersionadoUNIQUEIRREGNAMEDINDEX**GLOBALID
Versionado Agregar Id. globalUNIQUEUUID_**GLOBALID
VersionadoCon Id. globalHabilitar archivadoUNIQUEUUID_***GLOBALID
VersionadoArchivado habilitadoAgregar Id. globalUNIQUEUUID_**GLOBALID
No versionadaCon Id. global y límite único de base de datosRegistrar como VersionadoUNIQUEUUID_**GLOBALID
** Ningún índice nuevo en las tablas Adiciones ni Borrados
*** La tabla H se crea y obtiene el índice NONUNIQUE en la columna GLOBALID

image of preceding table

¿Por qué ha cambiado?
La creación de índices únicos en las columnas Global ID es una respuesta directa a los casos de datos dañados. Este cambio garantiza que los Id. globales duplicados no rellenen la tabla base durante las operaciones en clases con archivado habilitado versionadas y no versionadas. Operaciones tales como la sincronización y la replicación dependen de la unicidad de los Id. globales, por lo que imponer los Id. globales únicos de la base de datos es un sólido paso preventivo ante posibles problemas de duplicación.

La contrapartida de esta integridad de datos es la cantidad de tiempo que se requiere en la creación de índices (Agregar Id. global / Registrar como versionada / Habilitar archivado). La plataforma DBMS subyacente se ve obligada a crear una estructura nueva y más grande. Además, algunas plataformas DBMS requieren también la regeneración de los índices restantes de la tabla.