Evaluación Final TSQL-Armando Florez

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 5

CIBERTEC

Dirección de Extensión Profesional


DIVISIÓN DE ALTA TECNOLOGÍA (DAT)

Programa : Transac-SQL – SQL Server 2019


Fecha : 20/07/2021
Docente : Mg. Adolfo Bernal Guio
Alumno : Armando James Florez Cuentas

Evaluación Final

1. ¿Cuántas columnas puede tener un índice no agrupado?

999

2. ¿Cuándo se usa un índice con columnas incluidas y hasta cuantas columnas soporta?

● Cuando no se quiere incrementar el tamaño de las keys del índice.,


• Cuando se está indexando un tipo de dato que no puede ser indexado (excepto ntext,
text, image)
• Cuando ya se ha excedido, el máximo número de key columns para un índice.

3. Obtener la consulta en base al plan de ejecución del siguiente archivo:

select od.ProductID,p.ProductName,p.UnitsInStock from dbo.Orders o


inner join [Order Details] od on o.OrderID=od.OrderID
left outer join Products p on p.ProductID=od.ProductID
where DATEPART(year,OrderDate)=1998

4. Mejorar el costo de la siguiente consulta, (usar índices, cambio de consulta, etc) incluir
evidencias.

SELECT P.ProductName, SUM(OD.Quantity) AS NROITEMS, SUM(OD.Discount)


DESCUENTO
FROM [Order Details] OD
INNER JOIN Products P ON P.ProductID = OD.ProductID
INNER JOIN Categories C ON C.CategoryID = P.CategoryID
WHERE C.CategoryName = 'Confections'
GROUP BY P.ProductName

set statistics io on
SELECT P.ProductName, SUM(OD.Quantity) AS NROITEMS, SUM(OD.Discount)
DESCUENTO
FROM [Order Details] OD
INNER JOIN Products P ON P.ProductID = OD.ProductID
INNER JOIN Categories C ON C.CategoryID = P.CategoryID
WHERE C.CategoryName = 'Confections'
GROUP BY P.ProductName
set statistics io off

al usar sp_helpindex ‘order detail’

Se creara indices en las columnas que no estan indexadas de la table order detail;

Create nonclustered inde idx on dbo.order details(quantity)

5. Proporcione 5 mejores prácticas para la construcción de una consulta.


● Todas las tablas deben tener un índice clustered
● Evitar el uso de los cursores en cambio usar otras técnicas como por ejemplo el while.
● Evitas el uso de querys ad hoc en cambio usar vistas o procedimientos almacenados
conocidos
● Mejorar el desempeño de los predicados evitando que se realicen cálculos o se
manipulen las columnas
● Usar operadores en el where para filtrar datos

6. Explique que es un deadlock e indique que hace el motor de base de datos cuando detecta
uno.

Se produce cuando 2 o más tareas que se bloquean entre si permanentemente, teniendo


cada tarea un bloqueo en un recurso que las otras tareas intentan bloquear.
Cuando sucede ello el motor lo detecta y elige una de las sesiones como sujeto del
deadlock y la transacción actual finaliza con un error para romper el deadlock.

7. Usar el script CreaciónTabla.sql para crear la tabla Alumnos luego proceder a resolver el
problema de bloqueos que se generara con los siguientes dos scripts (sesión1.sql y
sesión2.sql) la transacción debe quedar abierta para resolver la consulta de la sesión 2.
Se debe pegar evidencia de la resolución del problema y explicar la razón del por qué la
solución implementada resolvió el problema.
set statistics io on
select Carrera,count(DNI) as Alumnos_Por_Carrera
from dbo.Alumno
group by Carrera
set statistics io off

Al generar un índice no agrupado en la columna carrera

create nonclustered index idx1 on dbo.alumno(carrera)


Optimizar las siguientes dos consultas y evidenciar con el plan de ejecución y las
estadísticas de lecturas (SET STATISTICS IO ON) la mejora en la ejecución:

También podría gustarte