Ambos lados, revisión anterior
Revisión previa
Próxima revisión
|
Revisión previa
|
wiki:3.-servidor:3.5.-replicador:e.-selectividad:start [2019/06/26 12:12] ejetoro [Rellenar la Selectividad] |
wiki:3.-servidor:3.5.-replicador:e.-selectividad:start [2021/03/01 09:28] (actual) ary [Tabla] |
Esta tabla **NO** define la selectividad directamente, **ES UNA PLANTILLA** para poder rellenar posteriormente la tabla **MASTER_REPLICA_SELECTED**, que es realmente la tabla que define las reglas de selectividad. | Esta tabla **NO** define la selectividad directamente, **ES UNA PLANTILLA** para poder rellenar posteriormente la tabla **MASTER_REPLICA_SELECTED**, que es realmente la tabla que define las reglas de selectividad. |
| |
^ CAMPO ^ TIPO ^ DESCRIPCIÓN ^ | ^ CAMPO ^ TIPO ^ DESCRIPCIÓN ^ |
| **ID** | Autonumérico | | | | **ID** | Autonumérico | | |
| **TABLENAME** | Varchar(50) | Nombre de la tabla | | | **TABLENAME** | Varchar(50) | Nombre de la tabla | |
| **ALWAYS** | Numérico | ALWAYS=1, se reciben todas las operaciones de la tabla especificada en TABLENAME y se ignora lo que haya definido en CRITERIA, ALWAYS=0, se evalúa la consulta que haya definida en el campo CRITERIA | | | **ALWAYS** | Numérico | ALWAYS=1, se reciben todas las operaciones de la tabla especificada en TABLENAME y se ignora lo que haya definido en CRITERIA, ALWAYS=0, se evalúa la consulta que haya definida en el campo CRITERIA | |
| **CONDITIONAL** | Numérico | Deprecated. Utilizado en el servidor de réplica anterior a .NET. Cuando ALWAYS=1, CONDITIONAL=0 y cuando ALWAYS=0, CONDITIONAL=1. | | | **CONDITIONAL** | Numérico | Deprecated. Utilizado en el servidor de réplica anterior a .NET. Cuando ALWAYS=1, CONDITIONAL=0 y cuando ALWAYS=0, CONDITIONAL=1. | |
| **CRITERIA** | Varchar(4096) | Si el criterio es simple se puede especificar simplemente la condición (P.Ej:IDEMPRESA=1) ó si la condición es compleja con varios joins simplemente tendremos que rescatar el campo ROWID de los valores que cumplen la condición. | | | **CRITERIA** | Varchar(4096) | Si el criterio es simple se puede especificar simplemente la condición (P.Ej:IDEMPRESA=1) ó si la condición es compleja con varios joins simplemente tendremos que rescatar el campo ROWID de los valores que cumplen la condición. | |
| | **CRITERIAPROVISIONNING** (Con 2 N) | Varchar(4096) | **Opcional**. Puede ser utilizado para saltarnos la condición definida para la selectividad en el campo CRITERIA a la hora de provisionar una base de datos. Si este campo está vacío, se coge lo que haya en el campo CRITERIA. <wrap hi>La SQL que se defina en este campo rescataría TODOS los datos de la tabla en cuestión y NO únicamente el ROWID</wrap>. <wrap hi>Para que este campo tenga efecto, en la configuración del servicio %%xoneprovisioning%% hemos de tener el parámetro Using-%%subqueries%%=true además de tener el campo ALWAYS=0</wrap>. | |
=== Ejemplos de CRITERIA en TEMPLATE === | === Ejemplos de CRITERIA en TEMPLATE === |
<code sql> | <code sql> |
INSERT INTO master_replica_selected (MID,TBL,ALWAYS,CRITERIA) | INSERT INTO master_replica_selected (MID,TBL,ALWAYS,CRITERIA) |
SELECT S.MID, T.TABLENAME, T.ALWAYS, REPLACE(T.CRITERIA,'##MID##',S.MID) | SELECT S.MID, T.TABLENAME, T.ALWAYS, REPLACE(T.CRITERIA,'##MID##',S.MID) |
| FROM master_replica_slave S, adm_selected_template T |
| WHERE MID>1 ORDER BY MID |
| |
| /* En caso de que también tengamos CRITERIAPROVISIONNING... */ |
| INSERT INTO master_replica_selected (MID,TBL,ALWAYS,CRITERIA,CRITERIAPROVISIONNING) |
| SELECT S.MID, T.TABLENAME, T.ALWAYS, REPLACE(T.CRITERIA,'##MID##',S.MID), REPLACE(T.CRITERIAPROVISIONNING,'##MID##',S.MID) |
FROM master_replica_slave S, adm_selected_template T | FROM master_replica_slave S, adm_selected_template T |
WHERE MID>1 ORDER BY MID | WHERE MID>1 ORDER BY MID |