You are on page 1of 6

Consultas distribuidas

Las consultas distribuidas obtienen acceso a datos de varios orígenes de datos heterogéneos.
Estos orígenes de datos pueden estar almacenados en el mismo equipo o en equipos diferentes.
Microsoft SQL Server admite consultas distribuidas utilizando OLE DB.

Los usuarios de SQL Server pueden utilizar consultas distribuidas para obtener acceso a lo
siguiente:

 Datos distribuidos almacenados en varias instancias de SQL Server.


 Datos heterogéneos almacenados en varios orígenes de datos relacionales y no
relacionales a los que se obtiene acceso mediante un proveedor OLE DB.

Los proveedores OLE DB exponen datos en objetos tabulares denominados conjuntos de filas.
SQL Server permite hacer referencia a conjuntos de filas desde proveedores OLE DB en
instrucciones Transact-SQL como si fuesen tablas de SQL Server.

En las instrucciones SELECT, INSERT, UPDATE y DELETE de Transact-SQL, se puede hacer


referencia directa a las tablas y vistas de orígenes de datos externos. Puesto que las consultas
distribuidas usan OLE DB como interfaz subyacente, éstas tienen acceso a los sistemas DBMS
relacionales tradicionales con procesadores de consultas SQL, así como a los datos
administrados por orígenes de datos de diversa capacidad y sofisticación. Siempre que el
software propietario de los datos los exponga en un conjunto de filas tabular a través del
proveedor OLE DB, los datos se podrán usar en consultas distribuidas.

Consultas distribuidas y transacciones distribuidas

El SQL Server Database Engine (Motor de base de datos de SQL Server) permite crear vínculos
a orígenes de datos OLE DB llamados servidores vinculados. Tras vincularse a un origen de
datos OLE DB, puede:

Hacer referencia a conjuntos de filas de los orígenes de datos OLE DB como tablas en
instrucciones Transact-SQL.

 Pasar comandos a los orígenes de datos OLE DB e incluir los conjuntos de filas
resultantes como tablas en instrucciones de Transact-SQL.

Cada consulta distribuida puede hacer referencia a varios servidores vinculados o realizar
operaciones de actualización o lectura con cada servidor vinculado individual. Una sola consulta
distribuida puede realizar operaciones de lectura con unos servidores vinculados y operaciones
de actualización con otros servidores vinculados. En general, el Database Engine (Motor de base
de datos) requiere admitir transacciones distribuidas del proveedor OLE DB correspondiente
siempre que en una transacción se actualicen los datos de más de un servidor vinculado. De esta
forma, los tipos de consultas que se admiten con los servidores vinculados dependen del nivel de
admisión de transacciones presente en los proveedores OLE DB. OLE DB define dos interfaces
opcionales para la administración de transacciones:

 ITransactionLocal acepta transacciones locales en el origen de datos OLE DB.


 ITransactionJoin permite al proveedor combinar una transacción distribuida que
contiene otros administradores de recursos.
Cualquier proveedor que admita ITransactionJoin también admitirá
ITransactionLocal.

Si se ejecuta una consulta distribuida cuando la conexión está en modo de confirmación


automática, se aplican las reglas siguientes:

 Sólo se permite realizar operaciones de lectura con proveedores que no acepten


ITransactionLocal.
 Se permiten todas las operaciones de actualización con todos los proveedores que acepten
ITransactionLocal.
La instancia de control del Database Engine (Motor de base de datos) llama
automáticamente a ITransactionLocal en cada servidor vinculado que participe en una
operación de actualización para iniciar una transacción local. Si la instrucción se
completa correctamente, los confirma, pero, si la instrucción genera un error, los revierte.

Procesamiento distribuido de consultas

En el procesamiento distribuido de consultas se estudia el coste de las comunicaciones.


Las consultas distribuidas se realizarán, ante todo, con la operación de semijoin para poder
optimizar dichas consultas.
En un sistema distribuido hay varios factores adicionales que complican el proceso de consulta
en comparación con los sistemas centralizados. El primero de estos factores es el coste de
transferencia de datos a través de la red. Los datos son enviados a ficheros intermedios que a su
vez se envían a otros nodos para nuevos procesos. Los ficheros resultantes deben enviarse de
vuelta al nodo que lanzó la consulta. Los algoritmos de consulta deben, por tanto, tener como
objetivo la reducción de la cantidad de datos transferidos.

You might also like