Nueva funcionalidad para generar las PKEYS
A partir de 5.8.0.0 Patch 2 se agregó una nueva funcionalidad para generar las PKEYS de las tablas que hoy en día aceptan GUIDs (no se pueden elegir las tablas individualmente, sino que es para toda la lista de las que aceptan GUIDs).
Para poder generar distintos tipos de PKEYS, se agregó el siguiente parámetro en la PRM: PkeysFormat
INSERT INTO PRM (PRM_COD, PRM_VAL, PRM_GLS, PRM_NUM) VALUES (‘PkeysFormat’, ‘GUID’, ‘SYSTEM_VALUES’, ‘ ‘)
Los valores posibles son los siguientes:
- TIME: String con los primeros 36 bytes de: yyyyMMddHHmmssffff + GUIDN
- TICKS: yyyyMMddHHmmss + Ticks desde el inicio del día con formato “0000000000000000000000”
- GUIDN: Guid con el siguiente formato: “XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX” (32 bytes string)
- GUID (default): Guid con el siguiente formato: “XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX” (36 bytes string)
Para tener en cuenta:
Dado que en SQLServer, las PKEYs de las tablas están definidas siempre como CLUSTERED INDEX, según el tipo de PKEY que se utilice puede haber pros y contras:
- TIME, TICKS:
- Pros: al ser un dato secuencial, es muy eficiente la distribución de los datos en páginas, sin generarse fragmentación.
- Contras: habrá más bloqueos, porque se estará accediendo más frecuentemente a la misma página (el caso de la PHYSICAL_CALL_TRANSACTIONS por ejemplo).
- GUIDN, GUID:
- Pros: como es un dato desordenado, habrá menos bloqueos, porque es más difícil que dos PKEYs caigan en la misma página.
- Contras: esto es terrible para la fragmentación, dado que es muy probable que dos PKEYs generadas una luego de la otra caigan en páginas totalmente distintas.