COBOL L2 - Curso Práctico SQL Server: De Principiante a Experto [2025]Online version Curso Práctico SQL Server: De Principiante a Experto [2025] by HR Mexico 1 ¿Cuál es el impacto de la normalización de una base de datos en el rendimiento de las consultas complejas? a Puede aumentar la complejidad de las consultas, requiriendo más JOINs y potencialmente afectando el rendimiento si no se optimizan correctamente. b Siempre mejora el rendimiento al reducir la redundancia de datos. c No tiene ningún impacto significativo en el rendimiento. d Reduce la necesidad de índices, mejorando el rendimiento general. 2 ¿Qué consideraciones de seguridad deben tenerse en cuenta al elegir un modelo de autenticación para SQL Server en un entorno de producción? a Utilizar la autenticación de Windows (Integrated Security) siempre que sea posible, aprovechando las políticas de seguridad del dominio y minimizando la necesidad de gestionar contraseñas SQL Server separadas. b Utilizar siempre la autenticación de SQL Server para mayor flexibilidad. c Utilizar una contraseña predeterminada para todos los usuarios. d Desactivar completamente la autenticación para simplificar la administración. 3 En un proyecto de desarrollo de bases de datos colaborativo, ¿cuál es la mejor estrategia para gestionar los cambios en el esquema de la base de datos? a Utilizar un sistema de control de versiones (como Git) para rastrear los cambios en los scripts SQL y automatizar las implementaciones a través de un proceso de CI/CD. b Guardar copias de seguridad de la base de datos antes de cada cambio. c Que un solo desarrollador sea responsable de todos los cambios en el esquema. d No realizar cambios en el esquema una vez que la base de datos esté en producción. 4 ¿Cómo se puede optimizar el uso de recursos (CPU, memoria, I/O) al ejecutar scripts SQL de larga duración en SQL Server? a Utilizar la característica Resource Governor para limitar el consumo de recursos de las consultas. b Aumentar la memoria del servidor sin analizar el código. c Ejecutar los scripts durante las horas pico. d Desactivar la indexación para mejorar el rendimiento. 5 ¿Cuál es la diferencia entre CROSS APPLY y OUTER APPLY y cuándo usarías cada uno? a CROSS APPLY devuelve solo filas con resultados, mientras que OUTER APPLY incluye todas las de la tabla izquierda, incluso sin coincidencias. b CROSS APPLY es más eficiente que OUTER APPLY. c OUTER APPLY se usa solo con subconsultas escalares. d No hay diferencia significativa entre los dos. 6 ¿Cómo optimizarías una consulta SQL que utiliza múltiples subconsultas correlacionadas que están afectando el rendimiento? a Reescribir la consulta utilizando JOINs y funciones de ventana para evitar la necesidad de subconsultas correlacionadas. b Crear índices en todas las columnas utilizadas en las subconsultas. c Aumentar la memoria del servidor. d Eliminar las subconsultas correlacionadas. 7 ¿Qué implicaciones tiene el uso incorrecto de JOINs en el rendimiento de una consulta? a Puede resultar en un plan de ejecución subóptimo, escaneo innecesario de tablas, y operaciones de ordenamiento/hash costosas. b No tiene ningún impacto en el rendimiento. c Siempre mejora el rendimiento al simplificar la consulta. d Aumenta la legibilidad del código. 8 En un escenario de Data Warehousing con una tabla de hechos grande y múltiples tablas de dimensiones, ¿qué estrategia se utilizaría para optimizar las consultas de análisis? a Utilizar un esquema de estrella con índices bitmap en las columnas de las tablas de dimensiones y un índice clustered columnstore en la tabla de hechos. b Normalizar todas las tablas para reducir la redundancia. c Utilizar SELECT * en todas las consultas. d No utilizar índices en las tablas de dimensiones. 9 ¿Cómo utilizarías funciones de ventana para calcular una media móvil de los últimos 7 días en una tabla de ventas? a Usar AVG(Sales) OVER (ORDER BY Date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW). b Usar SUM(Sales) OVER (ORDER BY Date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW). c Usar COUNT(Sales) OVER (ORDER BY Date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW). d No es posible calcular una medida móvil con funciones de ventana 10 ¿Qué implicaciones tiene el uso de GROUP BY ALL (deprecated) en SQL Server en comparación con GROUP BY estándar? a GROUP BY ALL incluía todas las columnas de la tabla base en la cláusula GROUP BY, lo que podía llevar a resultados inesperados y problemas de rendimiento si no se entendía correctamente. Ya no se recomienda y no está soportado en versiones modernas. b GROUP BY ALL es más eficiente que GROUP BY. c No hay diferencia entre los dos. d GROUP BY ALL se usa solo con funciones de ventana 11 ¿Cuáles son las consideraciones al convertir datos entre diferentes collations en SQL Server? a La posible pérdida de datos o corrupción de caracteres si la collation de destino no puede representar los caracteres de la collation original. b La conversión siempre es segura y no hay riesgo de pérdida de datos. c La conversión siempre mejora el rendimiento de las consultas. d Las collations no afectan la conversión de datos. 12 En un escenario donde necesitas convertir una gran cantidad de datos de texto a un formato numérico, ¿qué estrategia utilizarías para minimizar el impacto en el rendimiento? a Utilizar una función CLR para realizar la conversión en código administrado, aprovechando la capacidad de procesamiento de .NET. b Utilizar la función CAST o CONVERT directamente en la consulta SQL. c Convertir los datos fuera de SQL Server y luego importarlos. d No convertir los datos. 13 ¿Cómo podrías utilizar expresiones regulares en SQL Server para validar el formato de una dirección de correo electrónico? a Utilizar una función CLR que implemente la lógica de validación de la expresión regular. b Utilizar la función LIKE con patrones complejos. c No es posible validar direcciones de correo electrónico con SQL Server. d Utilizar la función REPLACE para eliminar caracteres inválidos. 14 ¿Cómo se puede optimizar la búsqueda de patrones complejos en cadenas de texto grandes en SQL Server? a Utilizar la indexación Full-Text Search con un thesaurus personalizado para mejorar la precisión y el rendimiento de las búsquedas. b Utilizar la función LIKE con patrones simples. c No es posible optimizar la búsqueda de patrones complejos. d Aumentar la memoria del servidor. 15 ¿Qué consideraciones de rendimiento debes tener en cuenta al utilizar múltiples operadores OR en una cláusula WHERE? a SQL Server puede tener dificultades para optimizar la consulta, resultando en un plan de ejecución subóptimo. Se puede mejorar el rendimiento reescribiendo la consulta utilizando UNION ALL o una tabla de valores. b Los operadores OR siempre mejoran el rendimiento. c No hay consideraciones de rendimiento. d Los operadores OR solo se pueden usar con dos condiciones. 16 ¿Cómo se puede simular un operador XOR (o exclusivo) en SQL Server? a Utilizar (condition1 AND NOT condition2) OR (NOT condition1 AND condition2). b Utilizar condition1 OR condition2. c Utilizar condition1 AND condition2. d No es posible simular un operador XOR. 17 ¿Qué implicaciones tiene la elección del tipo de dato para una columna que almacenará datos numéricos en términos de precisión, almacenamiento y rendimiento? a Elegir el tipo de dato más pequeño posible que pueda representar los valores requeridos optimiza el almacenamiento y el rendimiento. b Elegir siempre el tipo de dato más grande posible garantiza la precisión. c El tipo de dato no tiene ningún impacto en el almacenamiento o el rendimiento. d Elegir siempre el tipo de dato VARCHAR para todos los números. 18 ¿Cómo se puede implementar un esquema de versionado de tablas en SQL Server para rastrear los cambios a lo largo del tiempo? a Utilizar temporal tables (tablas temporales) para rastrear el historial de los cambios. b Crear copias de seguridad de la tabla antes de cada cambio. c No es posible rastrear los cambios a lo largo del tiempo. d Utilizar triggers para registrar cada cambio en una tabla de auditoría. 19 ¿Qué consideraciones debes tener al eliminar una tabla que tiene relaciones de clave foránea con otras tablas? a Debes eliminar las relaciones de clave foránea primero, o la eliminación de la tabla fallará. b SQL Server elimina automáticamente las relaciones de clave foránea. c No es posible eliminar una tabla con relaciones de clave foránea. d La eliminación de la tabla no afecta las relaciones de clave foránea. 20 ¿Qué estrategia utilizarías para eliminar una gran cantidad de datos de una tabla sin bloquearla durante un tiempo prolongado? a Utilizar la técnica de "batch deletion" (eliminación por lotes) eliminando los datos en pequeños incrementos con pausas entre lotes. b Eliminar todos los datos de una sola vez. c No es posible eliminar una gran cantidad de datos sin bloquear la tabla. d Desactivar la indexación para acelerar la eliminación. 21 ¿Cómo se puede optimizar el rendimiento de las inserciones masivas en SQL Server? a Utilizar la instrucción BULK INSERT o la clase SqlBulkCopy para cargar los datos directamente en la tabla, minimizando el overhead de las inserciones individuales. b Insertar los datos de uno en uno. c Desactivar la indexación para acelerar las inserciones. d No es posible optimizar las inserciones masivas. 22 ¿Cómo se puede gestionar la concurrencia al insertar datos en una tabla que está siendo accedida por múltiples usuarios simultáneamente? a Utilizar niveles de aislamiento de transacción apropiados (como SERIALIZABLE o SNAPSHOT) para garantizar la consistencia de los datos. b No gestionar la concurrencia. c Bloquear la tabla para cada inserción. d Aumentar la memoria del servidor. 23 ¿Qué hace la declaración THROW? a Lanza una excepción para el manejo de errores b Imprime un mensaje en la consola c Devuelve un valor de una función d Declara una variable 24 ¿Qué es un CTE (Common Table Expression) y para qué se utiliza? a Una consulta temporal con nombre para simplificar consultas complejas b Una instrucción para crear una nueva tabla c Una función de agregación d Un tipo de índice 25 ¿Qué diferencias existen entre roles de servidor fijos y roles de base de datos fijos en SQL Server, y cuándo deberías usar cada uno? a Los roles de servidor gestionan permisos a nivel de instancia, mientras que los de base de datos controlan el acceso dentro de una base específica. b Los roles de servidor controlan permisos dentro de una base de datos. c No hay diferencia entre los dos. d Los roles de base de datos controlan permisos a nivel del servidor. 26 ¿Cómo implementarías el principio de "least privilege" (mínimo privilegio) al asignar permisos a usuarios en SQL Server? a Asignar solo los permisos estrictamente necesarios para que el usuario pueda realizar sus tareas, evitando otorgar permisos innecesarios que podrían comprometer la seguridad. b Asignar todos los permisos posibles para facilitar el trabajo del usuario. c No asignar ningún permiso. d Asignar permisos aleatorios. 27 ¿Cómo se puede proteger un procedimiento almacenado de la inyección SQL? a Utilizando parámetros parametrizados en lugar de concatenar cadenas para construir las consultas SQL dinámicamente. b No es posible proteger un procedimiento almacenado de la inyección SQL. c Utilizando la función REPLACE para eliminar caracteres especiales. d Desactivando los procedimientos almacenados. 28 ¿Cómo implementarías el versionado de procedimientos almacenados para facilitar la gestión y el rollback de cambios? a Crear copias de seguridad de los procedimientos almacenados antes de realizar cambios y almacenarlas con un esquema de nombres que incluya la versión. b No es necesario versionar los procedimientos almacenados. c Eliminar los procedimientos almacenados antiguos. d Desactivar los procedimientos almacenados antiguos. 29 ¿Qué es el isolation level SNAPSHOT y cómo afecta la concurrencia y la consistencia de los datos? a SNAPSHOT crea una copia de los datos al inicio de la transacción, permitiendo que las consultas lean una versión consistente de los datos sin bloquear a otros usuarios. b SNAPSHOT bloquea la tabla durante la transacción. c SNAPSHOT no afecta la concurrencia o la consistencia. d SNAPSHOT elimina los datos. 30 ¿Cómo se puede manejar los deadlocks en SQL Server? a Implementar lógica de reintento en la aplicación para reintentar las transacciones que fueron abortadas debido a un deadlock. b No es posible manejar los deadlocks. c Aumentar el timeout de las transacciones. d Desactivar las transacciones. 31 ¿Qué es el teorema CAP? a Teorema que establece que en un sistema distribuido, solo se pueden garantizar dos de las siguientes tres propiedades al mismo tiempo: Consistencia, Disponibilidad y Tolerancia a particiones b Teorema que explica la creacion de indices. c Teorema que explica como se gestionan los usuarios. d Teorema que ayuda a entender los JOINS. 32 ¿Qué es SQL Injection? a Vulnerabilidad que permite inyectar codigo malicioso en una base de datos. b Virus informatico. c Un tipo de ataque de denegacion de servicio. d Error de programación de SQL.