Estadistica

Páginas: 10 (2313 palabras) Publicado: 28 de marzo de 2013
Trabajo para la PC 02
Consultas sin Optimizacion
Primera Consulta
En esta consulta traemos todos los artículos con su respectivo costo en soles y separados por su almacén.
select codarticulo as Codigo, desarticulo as Articulo, moncostpromsole as [Costo en S/.],
desalmacen as Almacen
from inarticulos, inAlmacenes
where inArticulos.idtalmacen = inAlmacenes.idtalmacen andinArticulos.flaestado = 1
order by codarticulo asc,desarticulo asc







El resultado tras la ejecución es la siguiente:
Primero trae la consulta de ambas tablas, pero como las tablas inAlmacenes e inArticulos no tienen clave primaria y mucho menos índices SQL Server lo ejecuta como Table Scan. Esto quiere decir que recorre todas las filas que tiene cada tabla. Obviamente que el costo de laconsulta en inAlmacenes es menor, pues no supera las 30 filas, contrariamente a la tabla inArticulos, pues dicha tabla tiene aproximadamente 5 mil registros por eso tiene un gran costo de ejecución.
Table Scan es una buena opción para aquellas tablas que no tienen una gran cantidad de datos como es el caso de inAlmacenes. Para aquellas tablas o consultas que devuelven muchas filas no es lo másóptimo. En ocasiones un mal manejo de índices puede hacer que el motor de SQL Server ejecute las sentencias como Table Scan.
Luego hace, internamente, la unión de los resultados. El motor crea y arma una Tabla de Hash para hacer el join. SQL Server utiliza el Hash Match, cuando la cantidad de filas a traer es elevada o las columnas por el cual hace el agrupamiento no están indexadas.
Porúltimo, realiza el Sort que es el ordenamiento del resultado del proceso anterior.
Segunda Consulta
En esta consulta devuelve la venta total de un cliente determinado.

select desrazonsocial,sum(montota) as Total,
(case when copedicabe.idtmoneda = 39 then 'SOLES' else 'DOLARES' end) as Moneda
from CoPediCabe
inner join Clientes on CoPediCabe.idtcliente = Clientes.idtcliente
inner joinPersonal on Clientes.idtpersonal = Personal.idtpersonal
inner join ParametrosGenerales on CoPediCabe.idtmoneda = ParametrosGenerales.idtparametro
where copedicabe.idtcliente = 2061
group by desrazonsocial,CoPediCabe.idtmoneda
order by desrazonsocial asc

El resultado tras la ejecución es la siguiente:
1.- Primero ejecuta las tablas de Personal y Clientes. En ambas tablas aplica ClusteredIndes Seek. Dicho componente es ejecutado cuando traemos un o unos datos de algo específico como en el ejemplo trae las compras de un cliente determinado. Cuando aparece este componente nos debe dar tranquilidad, pues está trabajando correctamente los índices.

2.- Después pasa por el Nested Loops. Este componente es el más frecuente, pues aparece al momento de unir dos tablas y la cantidad dedatos a devolver es relativamente baja. En este caso por medio de este componente está uniendo la tabla Clientes con Personal.
3.- Luego, aplica el Clustered Index Seek a la tabla coPediCabe, pues es justamente en esta tabla donde hace la búsqueda específica del cliente. También, aplica un ordenamiento al resultado de esta, pues la consulta tiene una función de agregación.
4.- A continuación,une el resultado de la unión de las tabla Personal y Clientes con la de coPedicabe. Tras el resultado de esta unión el motor de SQL vuelve a unir dicho resultado con la tabla ParametrosGenerales. Todo esto lo hace con el Nested Loops, como lo indicamos arriba sirve para unir dos conjuntos de resultados.
5.- Cuando el motor termina de unir todos los resultados de la sentencia, recién realiza lasuma. Para realizar la suma aparece el componente Stream Aggregate. Este componente cumple la función de realizar la suma de la sentencia y para hacerlo requiere que los campos estén ordenados. Como vimos en la parte 3, en tabla coPedicabe es donde ordena los campos para que el motor pueda realizar la función de agregación.
6.- Tras realizar la suma, el motor evalúa si hay nuevos valores dentro...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Estadistica
  • Estadistica
  • Estadistica
  • Estadistica
  • Estadistica
  • Estadisticas
  • Estadistica
  • Estadistica

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS