Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

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]
Línea 23: Línea 23:
 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>
Línea 85: Línea 86:
 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