You are on page 1of 8

U.A.G.R.

M
FACULT
AD
INTEGR
PARALELISMO EN SQL SERVER
2012

DOCENTE: Msc ING. JAVIER CLAROS


ALUMNA: GRECIA MABEL ROMERO LEON
CARRERA: INGENIERIA EN SISTEMAS
FECHA:27-08-2014

MONTERO- SANTA CRUZ

Tabla de contenido
1.- INTRODUCCION.............................................................................................. 4
2.- ALCANCE........................................................................................................ 4
3.- ANLISIS DE LA PROBLEMTICA.....................................................................4
4.-OBJETIVO GENERAL......................................................................................... 4
4.1.- OBJETIVO ESPECIFICOS............................................................................ 4
5.- MARCO TEORICO............................................................................................ 5
5.1.- PARALELISMO EN SQL SERVER 2012........................................................5
5.2.- Grado de paralelismo............................................................................... 6
5.2.1.- MAXDOP (max degree of parallelism)................................................6
6.-BIBLIOGRAFIA.................................................................................................. 8

1.- INTRODUCCION
Microsoft SQL Server 2012 constituye un lanzamiento determinante para
los productos de bases de datos de Microsoft, continuando con la base
slida establecida por SQL Server Como la mejor base de datos, SQL
Server es el RDBMS de eleccin para una amplia gama de clientes
corporativos y Proveedores Independientes de Software (ISVs) que
construyen aplicaciones de negocios. Las necesidades y requerimientos de
los clientes han llevado a la creacin de innovaciones de producto
significativas para facilitar la utilizacin, escalabilidad, confiabilidad y
almacenamiento de datos.
Los clientes estn buscando soluciones para sus problemas de negocios. La
mayora de las "soluciones" de bases de datos solamente traen mltiples
niveles de costos y complejidad. La estrategia de Microsoft es la de hacer
que SQL Server sea la base de datos ms fcil de utilizar para construir,
administrar e implementar aplicaciones de negocios. Esto significa tener
que poner a disposicin un modelo de programacin rpido y sencillo para
desarrolladores, eliminando la administracin de base de datos para
operaciones estndar, y suministrando herramientas sofisticadas para
operaciones ms complejas.

2.- ALCANCE
Llegar a conocer sobre la implementacin del paralelismo en sql 2012,
la funcionalidad

y sobre todo por qu SQL Server proporciona las

consultas en paralelo.

3.- ANLISIS DE LA PROBLEMTICA


Un tema quizs poco conocido por estudiantes, desarrolladores y
administradores de bases de datos, donde surgen varias interrogantes
acerca del tema: usar o no paralelismo? la mayora de las consultas y
operaciones de ndices se beneficiarn del paralelismo? por ese motivo
que se llega a realizar el estudio acerca del paralelismo sel SQL SERVER.

4.-OBJETIVO GENERAL
Realizar una investigacin sobre el desarrollo del paralelismo en sql
server 2012, para conocer sus ventajas como desventajas, al momento
de ser implementadas.

4.1.- OBJETIVO ESPECIFICOS

Recopilar la informacin.
Detallar los procedimientos de la instalacin.
Analizar el grado mximo del paralelismo.
Analizar las limitaciones y restricciones.

5.- MARCO TEORICO


5.1.- PARALELISMO EN SQL SERVER 2012
SQL Server proporciona consultas en paralelo para optimizar la ejecucin
de consultas y las operaciones con ndices en equipos que disponen de
ms de un microprocesador (CPU). Debido a que SQL Server puede
realizar una operacin de ndice o consulta en paralelo mediante varios
subprocesos del sistema operativo, la operacin se puede completar de
forma rpida y eficaz.
Durante la optimizacin de una consulta, SQL Server busca operaciones de
consulta o ndice que podran beneficiarse de la ejecucin en paralelo. Para
estas consultas, SQL Server inserta operadores de intercambio en el plan

de ejecucin de consultas para preparar su ejecucin en paralelo. Un


operador de intercambio es un operador de un plan de ejecucin de
consultas que proporciona administracin de procesos, redistribucin de
datos y control del flujo. El operador de intercambio incluye los operadores
lgicos Distribute Streams, Repartition Streams y Gather Streams como
subtipos; uno o varios de estos operadores pueden aparecer en la salida de
Showplan de un plan de consulta para una consulta en paralelo.
Tras la insercin de operadores de intercambio, el resultado es un plan de
ejecucin de consultas en paralelo. Un plan de ejecucin de consultas en
paralelo puede utilizar ms de un subproceso. Un plan de ejecucin en
serie, utilizado por una consulta no paralela, slo usa un subproceso para
su ejecucin. El nmero real de subprocesos que utiliza una consulta en
paralelo se determina en la inicializacin de la ejecucin del plan de
consulta y viene determinado por la complejidad del plan y el grado de
paralelismo. El grado de paralelismo determina el nmero mximo de CPU
que se estn utilizando; no significa el nmero de subprocesos que se
estn utilizando. El valor del grado de paralelismo se establece en el
servidor y se puede modificar mediante el procedimiento almacenado del
sistema sp_configure. Puede reemplazar este valor para instrucciones
individuales de consulta o ndice especificando la sugerencia de consulta
MAXDOP o la opcin de ndice MAXDOP.
El optimizador de consultas de SQL Server no utiliza un plan de
ejecucin en paralelo para una consulta si se cumple alguna de las
siguientes condiciones:
El costo de la ejecucin en serie de la consulta no es lo
suficientemente alto como para considerar un plan de ejecucin en
paralelo alternativo.
El plan de ejecucin en serie se considera ms rpido que cualquier
otro plan de ejecucin en paralelo de una consulta determinada.

La consulta contiene operadores escalares o relacionales que no se pueden


ejecutar en paralelo. Es posible que algunos operadores hagan que una
seccin del plan de consultas se ejecute en modo de serie, o que todo el
plan se ejecute en modo de serie.

5.2.- Grado de paralelismo


5.2.1.- MAXDOP (max degree of parallelism)
El Microsoft SQL Server max

degree of parallelism Opcin de

configuracin (MAXDOP) controla el nmero de procesadores que se


utilizan para la ejecucin de una consulta en un plan paralelo. Esta opcin
determina los recursos de computacin y el subproceso que se utilizan
para los operadores de plan de consulta que realizan el trabajo en paralelo.
Dependiendo de si SQL Server est configurado en un equipo de
multiproceso simtrico (SMP), un equipo de acceso (NUMA) de memoria no
uniforme

o procesadores

con hyperthreading habilitado, tiene que

configurar el max degree of parallelism opcin de forma adecuada.

SQL Server detecta de forma automtica el mejor grado de paralelismo


para cada instancia de una ejecucin de consulta en paralelo o de una
operacin de ndice del lenguaje de definicin de datos (DDL). Para ello usa
los siguientes criterios:
Si SQL Server se ejecuta en un equipo que disponga de ms de un
microprocesador o CPU, por ejemplo, un equipo de multiproceso
simtrico (SMP).
Slo los equipos con ms de una CPU pueden usar consultas en paralelo.
Si hay suficientes subprocesos disponibles

Cada operacin de consulta o ndice requiere que se ejecute un


determinado nmero de subprocesos. La ejecucin de un plan en paralelo
requiere ms subprocesos que un plan en serie, y el nmero de
subprocesos aumenta con el grado de paralelismo. Si no es posible cumplir
el requisito de subproceso del plan en paralelo para un grado de
paralelismo especfico, el Motor de base de datos reduce automticamente
el grado de paralelismo o abandona por completo el plan en paralelo en el
contexto de carga de trabajo especificado. Es entonces cuando ejecuta un
plan en serie (un subproceso).
El tipo de operacin de consulta o ndice ejecutado.
Las operaciones de ndice que crean o vuelven a crear un ndice, o que
eliminan un ndice clster o las consultas que utilizan constantemente los
ciclos de la CPU, son los candidatos idneos para un plan de paralelismo.
Por

ejemplo,

las

combinaciones

de

tablas

grandes,

agregaciones

importantes y la ordenacin de grandes conjuntos de resultados son


buenos candidatos. En las consultas simples, que suelen encontrarse en
aplicaciones de procesamiento de transacciones, la coordinacin adicional
necesaria para ejecutar una consulta en paralelo es ms importante que el
aumento potencial del rendimiento. Para distinguir entre las consultas que
se benefician del paralelismo y las que no, el Motor de base de datos
compara el costo estimado de ejecutar la consulta o el ndice de operacin
con el valor de cost threshold for parallelism. Aunque no se recomienda,
los usuarios pueden cambiar el valor predeterminado de 5 mediante
sp_configure.
Si hay un nmero suficiente de filas para procesar.
Si el optimizador de consultas determina que el nmero de filas es
demasiado bajo, no proporciona operadores de intercambio para distribuir
las filas. En consecuencia, los operadores se ejecutan en serie. Ejecutar los

operadores en un plan en serie evita los escenarios en que el costo del


inicio, distribucin y coordinacin excede las ganancias logradas mediante
la ejecucin del operador en paralelo.
Si las estadsticas de distribucin actuales estn disponibles.
Si no es posible establecer el grado de paralelismo ms alto, se tienen en
cuenta los grados inferiores antes de abandonar el plan en paralelo.
Por ejemplo, cuando sea crea un ndice clster en una vista, las
estadsticas de distribucin no se pueden evaluar porque el ndice clster
an no existe. En este caso, el Motor de base de datos no puede
proporcionar el grado de paralelismo ms alto para la operacin de ndice.
Sin embargo, algunos operadores, como sorting y scannig, se siguen
beneficiando de la ejecucin en paralelo.

6.-BIBLIOGRAFIA

http://support.microsoft.com/kb/2806535/es
http://ecastrom.blogspot.com/2009/04/configuracion-de-paralelismo-ensql.html
http://technet.microsoft.com/es-es/library/ms178065%28v=sql.105%29.aspx
http://highscalability.wordpress.com/2010/05/29/paralelismo-intra-query-o-decomo- muchos-cpu-no-siempre-significa-consultas-mas-rapidas/