Procesamiento De Consultas Locales

  • July 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Procesamiento De Consultas Locales as PDF for free.

More details

  • Words: 1,132
  • Pages: 4
Procesamiento de Consultas Locales Para procesar una consulta local solo se hace referencia a tablas y bases de datos locales (no a vistas ni a tablas remotas) , es decir que estén dentro de la misma instancia del manejador de bases de datos, en una única maquina y que nos se tenga que conectar al servidor a otras maquinas para poder efectuar la consulta. Cada subconsulta que se ejecuta en un nodo, llamada consulta local, es optimizada usando el esquema local del nodo. Hasta este momento, se pueden eligen los algoritmos para realizar las operaciones relacionales. La optimización local utiliza los algoritmos de sistemas centralizados Ejemplo de procesar y optimizar consultas en SQL server La entrada al optimizador consta de la consulta, el esquema de la base de datos (definiciones de tabla e índice) y las estadísticas de base de datos. Una instrucción SELECT define únicamente los siguientes elementos:  El formato del conjunto de resultados. Las tablas que contienen los datos de origen. Esto se especifica en la cláusula FROM.  Cómo se relacionan lógicamente las tablas para la instrucción SELECT. Esto se define en las especificaciones de combinación, que pueden aparecer en la cláusula WHERE o en una cláusula ONE que sigue a FROM.  Las condiciones que deben cumplir las filas de las tablas de origen para satisfacer los requisitos de la instrucción SELECT. Estas condiciones se especifican en las cláusulas WHERE y HAVING. Un plan de ejecución de consulta es una definición de los siguientes elementos:  La secuencia en la que se tiene acceso a las tablas de origen. Normalmente, hay muchas secuencias diferentes en las que el servidor de la base de datos puede tener acceso a las tablas base para generar el conjunto de resultados. Por ejemplo, si la instrucción SELECT hace referencia a tres tablas, el servidor de la base de datos podría tener acceso primero a TablaA, utilizar datos de TablaA para extraer las filas que coincidan con las de TablaB y, finalmente, utilizar datos de TablaB para extraer datos de TablaC. Las demás secuencias en las que el servidor

1

de

base

de

datos

podría

tener

acceso

a

las

tablas

son:

TablaC, TablaB, TablaA TablaB, TablaA, TablaC TablaB, TablaC, TablaA TablaC, TablaA, TablaB  Los métodos que se utilizan para extraer los datos de cada tabla. Si se necesitan todas las filas de una tabla, el servidor de la base de datos puede omitir los índices y realizar un recorrido de la tabla.

El optimizador de consultas es uno de los componentes más importantes de un sistema de base de datos SQL. El optimizador de consultas de SQL Server es un optimizador basado en el costo. El optimizador de consultas debe analizar los planes posibles y elegir el de menor costo estimado. Algunas instrucciones SELECT complejas tienen miles de planes de ejecución posibles. El optimizador de consultas de SQL Server elige, además del plan de ejecución con el costo de recursos mínimo, el plan que devuelve resultados al usuario con un costo razonable de recursos y con la mayor brevedad posible. El optimizador de SQL Server utilizará un plan de ejecución en paralelo para devolver resultados si esto no afecta negativamente a la carga del servidor. Pueden estar seguros de que el optimizador de consultas creará un plan de ejecución eficaz para el estado de la base de datos cada vez que se ejecuta la instrucción. 1. El optimizador de consultas analiza diferentes formas de acceso a las tablas de origen. La versión final y optimizada del árbol de la consulta se denomina plan de ejecución. 2. El motor relacional comienza a ejecutar el plan de ejecución. A medida que se procesan los pasos que necesitan datos de las tablas base, el motor relacional solicita al motor de almacenamiento que pase los datos de los conjuntos de filas solicitados desde el motor relacional.

2

Procesamiento de Consultas Distribuidas o Remotas

El procesamiento de consultas es de suma importancia en bases de datos centralizadas. Sin embargo, en BDD éste adquiere una relevancia mayor. El objetivo es convertir transacciones de usuario en instrucciones para manipulación de datos. No obstante, el orden en que se realizan las transacciones afecta grandemente la velocidad de respuesta del sistema. Así, el procesamiento de consultas presenta un problema de optimización en el cual se determina el orden en el cual se hace la menor cantidad de operaciones. Este problema de optimización es NP-difícil, por lo que en tiempos razonables solo se pueden obtener soluciones aproximadas. En BDD se tiene que considerar el procesamiento local de una consulta junto con el costo de transmisión de información al lugar en donde se solicitó la consulta. El éxito creciente de la tecnología de bases de datos relacionales en el procesamiento de datos se debe, en parte, a la disponibilidad de lenguajes no procedurales los cuales pueden mejorar significativamente el desarrollo de aplicaciones y la productividad del usuario final. Ocultando los detalles de bajo nivel acerca de la localización física de datos, los lenguajes de bases de datos relacionales permiten la expresión de consultas complejas en una forma concisa y simple. Particularmente, para construir la respuesta a una consulta, el usuario no tiene que especificar de manera precisa el procedimiento que se debe seguir. Este procedimiento es llevado a cabo por un módulo del DBMS llamado el procesador de consultas (query processor). Dado que la ejecución de consultas es un aspecto crítica en el rendimiento de un DBMS, el procesamiento de consultas ha recibido una gran atención tanto para bases de datos centralizadas como distribuidas. Sin embargo, el procesamiento de consultas es mucho más difícil en ambientes distribuidos que en centralizados, ya que existe un gran número de parámetros que afectan el rendimiento de las consultas distribuidas. La función principal de un procesador de consultas relacionales es transformar una consulta en una especificación de alto nivel, típicamente en cálculo relacional, a una consulta equivalente en una especificación de bajo nivel, típicamente alguna variación del álgebra relacional. La consulta de bajo nivel implementa de hecho la estrategia de ejecución para la consulta. La transformación debe ser correcta y eficiente. Es correcta si la consulta de bajo nivel tiene la misma semántica que la consulta original, esto es, si ambas consultas producen el mismo resultado. El mapeo bien definido que se conoce entre el cálculo relacional y el álgebra relacional hace que la correctitud de la transformación sea fácil de verificar. Sin embargo, producir una estrategia de ejecución eficiente es mucho más complicado. Una consulta en el cálculo relacional 3

puede tener muchas transformaciones correctas y equivalentes en el álgebra relacional. Ya que cada estrategia de ejecución equivalente puede conducir a consumos de recursos de cómputo muy diferentes, la dificultad más importante es seleccionar la estrategia de ejecución que minimiza el consumo de recursos.

4

Related Documents

Procesamiento
August 2019 18
Procesamiento
May 2020 3
Procesamiento
August 2019 21
Procesamiento
November 2019 21
Procesamiento
August 2019 29