WorksheetsBuenas practicas SQL
Total questions: 16
Worksheet time: 9mins
¿Cuál es el FROM más óptimo? teniendo en cuenta:
Tabla_A = 120.000 Registros
Tabla_B = 50.000 Registros
Tabla_C = 80.000 Registros
FROM TABLA_A, TABLA_B, TABLA_C
FROM TABLA_B, TABLA_C, TABLA_A
FROM TABLA_C, TABLA_A, TABLA_B
FROM TABLA_C, TABLA_B, TABLA_A
¿Es correcto?:
SELECT DISTINCT d.dept_id, d.dept_desc
FROM dept d
WHERE d.dept_id LIKE ‘%100%’;
Siendo d.dept_id un índice
Si, es correcta pero no es optima
Si, es correcta y es óptima porque filtra gran cantidad de registros
No es correcta
¿Cuál de los siguientes WHERE es mas optimo?:
WHERE e.nombre_empleado LIKE ‘%Juan%’
AND d.dept_Ciudad = ‘Medellin’
AND t.ano = 2019;
WHERE e.nombre_empleado LIKE ‘%Juan’
AND d.dept_Ciudad = ‘Medellin’
AND t.ano = 2019;
WHERE d.dept_Ciudad = ‘Medellin’
AND t.ano = 2019
AND e.nombre_empleado LIKE ‘Juan%’;
WHERE d.dept_Ciudad = ‘Medellin’
AND t.ano = 2019
AND e.nombre_empleado LIKE ‘%Juan’;
¿Cuál de las siguientes consultas es más eficiente?
SELECT d.dept_id, d.dept
FROM dept d
WHERE EXISTS ( SELECT e.id_dept, e.dept FROM employee e WHERE e. id_dept = d.dept_id);
SELECT DISTINCT d.dept_id, d.dept
FROM dept d, employee e
WHERE d.dept_id = e.id_dept;
¿En cuál caso es preferible usar SELECT * FROM?
Cuando tengo muchas columnas en la tabla
Cuando tengo pocas columnas en la tabla
Cuando consulto una tabla principal (Catálogo)
Ninguna de las anteriores
Siempre se recomienda usar Indices, incluso para tablas con pocos registros.
Verdadero
Falso
¿Qué indica un Skew cercano a 0?
Datos desbalanceados
Valores distribuidos de forma pareja
AMPs sin registros
¿Para cuales casos son aplicadas las estadísticas?
Índice primario de la tabla
Campos que referencian otras tablas
Campos de tipo descripción
Todas las anteriores
¿Cuál de los siguientes es mejor candidato para clave primaria?
Codigo_Ciudad INTEGER
Id_Ciudad VARCHAR(8)
Ciudad_Descripcion VARCHAR(50)
Codigo_Unico PRIMARY(4)
¿Cuál sentencia sirve para evitar bloqueo en las tablas?
LOCKING ROW FOR ACCESS
NO USE ANYWHERE
BLOQUEO! BLOQUEO! BLOQUEO!
Ninguna de las anteriores
¿En cuales casos se recomienda el uso de COMPRESS?
En tablas con mucha cantidad de registros diferentes
En tablas con poca cantidad de registros
En campos con poca cantidad de registros
En campos con mucha cantidad de registros iguales
¿Cuál de las siguientes consultas es óptima?
SELECT A.Id1, B.Id2, C.Id2
FROM A, B, C
WHERE A.Id1 = B.Id2
AND B.Id1 = C.Id2
SELECT A.Id1, B.Id2, C.Id2
FROM A
JOIN B ON (A.Id1 = B.Id2)
JOIN C ON (B.Id1 = C.Id2)
El orden de rendimiento de los operadores de mayor a menor es:
NOT LIKE, IN, LIKE, <, >, =
= , >, <, LIKE, IN, NOT LIKE
¿Cuál de las siguientes sentencias reemplazaría con mayor eficiencia a IN?
LIKE ‘%%’
NOT IN
BETWEEN
Todas las anteriores
Una manera adecuada de mejorar el rendimiento de la siguiente consulta:
SELECT MIN(Salary) FROM Employees
WHERE EmpID IN ( SELECT TOP 2 EmpID FROM Employees ORDER BY Salary DESC
Seria:
SELECT MIN(Salary) FROM ( SELECT TOP 2 Salary FROM Employees ORDER BY Salary DESC ) AS A
Falso
Verdadero
¿Cuál estrategia usar para optimizar una consulta?
A. Asignar alias a las tablas
B. No usar SELECT *
C. Evitar usar funciones propietarias del RDBMS
D. Todas las anteriores
E. Solo la A y la B son correctas
