Las 50 preguntas y respuestas principales de la entrevista T-SQL (2026)

Preguntas y respuestas de entrevista sobre T-SQL

ยฟTe estรกs preparando para una entrevista de T-SQL? Es hora de profundizar en tu comprensiรณn de cรณmo funcionan realmente las bases de datos internamente. Preguntas de entrevista sobre T-SQLLos reclutadores evalรบan no solo la capacidad de recordar la sintaxis, sino tambiรฉn el dominio de la manipulaciรณn de datos, la optimizaciรณn y la estructuraciรณn lรณgica.

Las oportunidades en este sector siguen creciendo a medida que las empresas dependen de informaciรณn basada en datos. Destacan los candidatos con sรณlidos conocimientos tรฉcnicos, capacidad de anรกlisis y habilidades para resolver problemas reales, tanto reciรฉn graduados como profesionales con entre 5 y 10 aรฑos de experiencia. Comprender las preguntas y respuestas, tanto a nivel bรกsico como avanzado, ayuda a los lรญderes de equipo, gerentes y tรฉcnicos sรฉnior a identificar a quienes poseen sรณlidas habilidades en SQL y experiencia fundamental.

Nuestra guรญa se basa en las perspectivas de mรกs de 65 gerentes de contrataciรณn, mรกs de 40 desarrolladores senior y profesionales de datos de diversas industrias, lo que garantiza una cobertura que abarca desde la lรณgica SQL fundamental hasta las tรฉcnicas de optimizaciรณn avanzadas en las que confรญan los lรญderes tรฉcnicos de todo el mundo.
Leer mรกs ...

๐Ÿ‘‰ Descarga gratuita del PDF: Preguntas y respuestas de entrevista sobre T-SQL

Principales preguntas y respuestas de entrevistas sobre T-SQL

1) ยฟQuรฉ es T-SQL y en quรฉ se diferencia del SQL estรกndar?

Transact-SQL (T-SQL) es Microsoftla extensiรณn propietaria del lenguaje SQL, utilizada principalmente con Microsoft SQL ServerMejora el SQL estรกndar al introducir caracterรญsticas de programaciรณn procedimental como variables, condicionales, bucles, manejo de errores y funciones integradas. Mientras que el SQL estรกndar se centra en la manipulaciรณn de datos (SELECT, INSERT, UPDATE, DELETE), T-SQL admite instrucciones de control de flujo (IFโ€ฆELSE, WHILE), manejo de transacciones y funciones del sistema que permiten a los desarrolladores escribir scripts complejos.

Aspecto SQL T-SQL
Propiedad del activo: Norma ANSI/ISO Microsoft
Lรณgica procedimental Limitada Admitido (variables, bucles)
Gestiรณn de errores Minimo TRYโ€ฆCATCH compatible
Uso primario Bases de datos genรฉricas SQL Server

Ejemplo:

DECLARE @count INT = 5;
WHILE @count > 0
BEGIN
    PRINT @count;
    SET @count -= 1;
END;

2) Explique los diferentes tipos de uniones en T-SQL con ejemplos.

En T-SQL, las combinaciones (JOIN) unen filas de dos o mรกs tablas basรกndose en columnas relacionadas. Comprender sus tipos es fundamental para las consultas de datos relacionales.

Tipo de uniรณn Descripciรณn Sintaxis de ejemplo
INNER JOIN Devuelve solo las filas coincidentes. SELECT * FROM A INNER JOIN B ON A.id = B.id;
LEFT JOIN Todo de izquierda a derecha + partidos de derecha SELECT * FROM A LEFT JOIN B ON A.id = B.id;
UNIRSE A LA DERECHA Todo desde la derecha + coincidencias desde la izquierda SELECT * FROM A RIGHT JOIN B ON A.id = B.id;
UNIRSE COMPLETAMENTE Combina IZQUIERDA + DERECHA SELECT * FROM A FULL JOIN B ON A.id = B.id;
UNIร“N CRUZADA producto cartesiano SELECT * FROM A CROSS JOIN B;

Ejemplo prรกctico: Integrรกndose Orders y Customers para averiguar quรฉ clientes han realizado pedidos utilizando INNER JOIN.


3) ยฟQuรฉ son las expresiones de tabla comunes (CTE) y cuรกles son sus ventajas?

Una expresiรณn de tabla comรบn (CTE) proporciona un conjunto de resultados temporales con nombre al que se puede hacer referencia dentro de una SELECT, INSERT, UPDATE o DELETE Declaraciรณn. Mejora la legibilidad y simplifica las consultas recursivas.

Ventajas:

  • Mejora la claridad y el mantenimiento de las consultas.
  • Habilita la recursiรณn (para datos jerรกrquicos como organigramas).
  • Ayuda a evitar subconsultas repetidas.
  • Aumenta la modularidad en scripts grandes.

Ejemplo:

WITH EmployeeCTE AS (
    SELECT EmpID, EmpName, ManagerID
    FROM Employees
)
SELECT * FROM EmployeeCTE WHERE ManagerID IS NULL;

4) ยฟEn quรฉ se diferencian las tablas temporales y las variables de tabla en T-SQL?

Ambos se utilizan para almacenar resultados intermedios, pero su comportamiento y alcance difieren significativamente.

Caracterรญstica Tabla temporal (#Temp) Variable de tabla (@TableVar)
Guardado en base de datos temporal Memoria (con uso limitado de TempDB)
Alcance transaccional Sigue las transacciones Independientemente de las transacciones
รndices Soportado Limitada
Rendimiento Mejor para grandes conjuntos de datos Mejor para conjuntos de datos pequeรฑos

Ejemplo:

DECLARE @TableVar TABLE (ID INT, Name NVARCHAR(50));
INSERT INTO @TableVar VALUES (1, 'Alice');

Utilice tablas temporales cuando trabaje con grandes conjuntos de datos o necesite รญndices.


5) Explique el concepto de transacciones en T-SQL y su ciclo de vida.

Una transacciรณn en T-SQL garantiza que una secuencia de operaciones se ejecute como una sola unidad lรณgica. El ciclo de vida incluye INICIO DE LA TRANSACCIร“N, COMETER y RETROCEDER.

Fase Descripciรณn
INICIO DE LA TRANSACCIร“N Inicia la transacciรณn
TRANSACCIร“N DE COMPROMISO Guarda todos los cambios de forma permanente.
REVERSIร“N DE LA TRANSACCIร“N Deshace todas las operaciones desde el รบltimo BEGIN.

Ejemplo:

BEGIN TRANSACTION;
UPDATE Accounts SET Balance = Balance - 100 WHERE AccID = 1;
UPDATE Accounts SET Balance = Balance + 100 WHERE AccID = 2;
COMMIT TRANSACTION;

Si se produce un error a mitad del proceso, ROLLBACK Mantiene la integridad de los datos.


6) ยฟCuรกl es la diferencia entre los comandos DELETE, TRUNCATE y DROP?

Comando Funciรณn Rollback Afecta la estructura Speed (Rapidez)
BORRAR Elimina filas especรญficas Sรญ No Mรกs lento
TRUNCAR Elimina todas las filas No (normalmente) No Rรกpido
DROP Elimina la tabla completa No Sรญ Empresarial

Ejemplo:

DELETE FROM Employees WHERE Department = 'HR';
TRUNCATE TABLE TempData;
DROP TABLE OldLogs;

Usa DELETE para la eliminaciรณn selectiva, TRUNCATE para despejar, y DROP para retirar la mesa por completo.


7) ยฟCรณmo funciona el manejo de errores en T-SQL?

T-SQL proporciona un manejo de errores estructurado a travรฉs de TRY...CATCH bloque, lo que permite a los desarrolladores gestionar de forma elegante los errores en tiempo de ejecuciรณn.

Ejemplo:

BEGIN TRY
    INSERT INTO Employees VALUES (1, 'John');
END TRY
BEGIN CATCH
    PRINT 'Error: ' + ERROR_MESSAGE();
END CATCH;

Este enfoque aรญsla la operaciรณn defectuosa y evita que la transacciรณn corrompa la integridad de los datos. Los desarrolladores tambiรฉn pueden acceder a funciones del sistema como ERROR_NUMBER() or ERROR_SEVERITY() para diagnรณstico.


8) ยฟCuรกles son las diferentes formas de optimizar el rendimiento de las consultas T-SQL?

La optimizaciรณn implica el ajuste preciso del diseรฑo, la indexaciรณn y las estrategias de ejecuciรณn de SQL.

Tรฉcnicas clave:

  1. Usa indexaciรณn adecuada en las columnas consultadas con frecuencia.
  2. Evitando SELECT * โ€” especificar explรญcitamente las columnas.
  3. Usa operaciones basadas en conjuntos en lugar de cursores.
  4. Analice los planes de ejecuciรณn utilizando SQL Server Management Studio.
  5. Usa JOINs eficiente con las condiciones de encendido adecuadas.
  6. La disminuciรณn subconsultas anidadas; prefiero las CTE o las tablas temporales.

La optimizaciรณn del rendimiento en T-SQL tambiรฉn incluye la monitorizaciรณn de las estadรญsticas de ejecuciรณn de consultas mediante SET STATISTICS IO ON.


9) ยฟQuรฉ son las funciones de ventana y cuรกndo se deben usar?

Las funciones de ventana realizan cรกlculos sobre un conjunto de filas relacionadas con la fila actual, sin agruparlas en un รบnico resultado. Son รบtiles para la clasificaciรณn, los totales acumulados y las medias mรณviles.

Ejemplo:

SELECT
    EmployeeID,
    Salary,
    RANK() OVER (ORDER BY Salary DESC) AS RankBySalary
FROM Employees;

Las funciones comunes incluyen RANK(), ROW_NUMBER(), DENSE_RANK() y SUM() OVER().

Son cruciales para cargas de trabajo analรญticas donde se necesitan datos tanto agregados como a nivel de fila.


10) Explique la diferencia entre รญndices agrupados y no agrupados.

Caracterรญstica Clusterรญndice de ediciรณn No-Clusterรญndice de ediciรณn
Almacenamiento de datos Reorganiza fรญsicamente la mesa Estructura separada
Nรบmero por mesa Mil Mรบltiple
Rendimiento Mรกs rรกpido para consultas de rango Mรกs rรกpido para bรบsquedas especรญficas
Ejemplo de uso Clave primaria Bรบsquedas secundarias

Ejemplo:

CREATE CLUSTERED INDEX IX_EmployeeID ON Employees(EmployeeID);
CREATE NONCLUSTERED INDEX IX_Dept ON Employees(Department);

Elegir el tipo de รญndice adecuado afecta directamente a la velocidad de ejecuciรณn de las consultas y a la eficiencia del almacenamiento.


11) ยฟQuรฉ son los procedimientos almacenados en T-SQL y por quรฉ se utilizan?

Un procedimiento almacenado es una colecciรณn precompilada de una o mรกs instrucciones SQL almacenadas en el servidor. Mejoran el rendimiento, la seguridad y la reutilizaciรณn al permitir encapsular la lรณgica y ejecutarla repetidamente sin necesidad de recompilarla. Los procedimientos almacenados reducen el trรกfico de red y admiten parรกmetros para la ejecuciรณn dinรกmica.

Ejemplo:

CREATE PROCEDURE GetEmployeeDetails @Dept NVARCHAR(50)
AS
BEGIN
    SELECT EmpName, Position FROM Employees WHERE Department = @Dept;
END;

Beneficios:

  • Mejor rendimiento gracias a la precompilaciรณn.
  • Mayor seguridad mediante la ejecuciรณn controlada.
  • Mantenimiento y modularizaciรณn del cรณdigo mรกs sencillos.

12) Explique la diferencia entre un procedimiento almacenado y una funciรณn en T-SQL.

Aspecto Procedimiento almacenado Funciรณn
Tipo de retorno Puede devolver mรบltiples valores Debe devolver un รบnico valor o tabla.
Usar en SELECT No se permiten Permitido
Gestiรณn de errores TRYโ€ฆCATCH compatible Limitada
Ejecuciรณn Ejecutado mediante EXEC Utilizado en lรญnea con SQL
Control de transacciones Soportado No se admite

Ejemplo:

  • Procedimiento: EXEC GetEmployeeDetails 'HR';
  • Funcionalidad: SELECT dbo.GetSalary(101);

Las funciones son ideales para cรกlculos; los procedimientos son mejores para la lรณgica empresarial y la manipulaciรณn de datos.


13) ยฟQuรฉ es un disparador en T-SQL y cuรกles son sus tipos?

Un disparador es un procedimiento almacenado especial que se ejecuta automรกticamente en respuesta a ciertos eventos (INSERT, UPDATE, DELETE) en una tabla o vista. Los disparadores se utilizan para aplicar reglas de negocio, auditar cambios o mantener la integridad referencial.

Tipo Descripciรณn
DESPUร‰S del disparador Incendios tras la finalizaciรณn del evento
EN LUGAR DE Gatillo Se ejecuta en lugar del evento desencadenante

Ejemplo:

CREATE TRIGGER trgAfterInsert
ON Employees
AFTER INSERT
AS
BEGIN
    PRINT 'New employee record added!';
END;

Evite abusar de los disparadores; pueden afectar al rendimiento y complicar la depuraciรณn.


14) ยฟCรณmo se manejan los valores NULL en T-SQL?

NULL representa datos faltantes o desconocidos. T-SQL proporciona varias funciones para manejarlo de manera efectiva:

  • ISNULL(expression, replacement) โ†’ reemplaza NULL con un valor predeterminado.
  • COALESCE(expression1, expression2, ...) โ†’ devuelve el primer valor no nulo.
  • NULLIF(expression1, expression2) โ†’ devuelve NULL si las expresiones son iguales.

Ejemplo:

SELECT ISNULL(Manager, 'No Manager') AS ManagerName FROM Employees;

Mejores prรกcticas: Siempre tenga en cuenta los valores NULL en las uniones y condiciones para evitar resultados inesperados.


15) ยฟQuรฉ son los cursores en T-SQL y cuรกndo se deben evitar?

Un cursor permite el procesamiento fila por fila de los resultados de una consulta, lo cual resulta รบtil para lรณgica compleja donde las operaciones basadas en conjuntos son insuficientes. Sin embargo, los cursores son lento y pesado en recursos en comparaciรณn con las alternativas basadas en conjuntos.

Ejemplo:

DECLARE emp_cursor CURSOR FOR SELECT EmpName FROM Employees;
OPEN emp_cursor;
FETCH NEXT FROM emp_cursor;
-- process
CLOSE emp_cursor;
DEALLOCATE emp_cursor;

Desventajas:

  • Mayor uso de memoria.
  • Poca escalabilidad.
  • Rendimiento reducido.

alternativa: Utilice combinaciones de tablas, subconsultas o funciones de ventana siempre que sea posible.


16) Explique la instrucciรณn MERGE y sus casos de uso.

La funciรณn MERGE La declaraciรณn realiza INSERT, ACTUALIZAR y BORRAR Operaciones en un solo comando: ideal para sincronizar dos tablas.

Ejemplo de sintaxis:

MERGE INTO Target AS T
USING Source AS S
ON T.ID = S.ID
WHEN MATCHED THEN UPDATE SET T.Name = S.Name
WHEN NOT MATCHED BY TARGET THEN INSERT (ID, Name) VALUES (S.ID, S.Name)
WHEN NOT MATCHED BY SOURCE THEN DELETE;

Casos de uso:

  • Almacenamiento de datos (sincronizaciรณn de tablas de almacenamiento provisional y de destino).
  • Carga incremental de datos.
  • Mantenimiento de tablas de auditorรญa o dimensiones.

17) ยฟCuรกles son los diferentes tipos de funciones definidas por el usuario (UDF) en T-SQL?

Tipo Descripciรณn Ejemplo
Escalar Devuelve un รบnico valor CREATE FUNCTION GetTax(@Salary DECIMAL) RETURNS DECIMAL
Tabla en lรญnea con valores Devuelve una tabla mediante un รบnico SELECT RETURN SELECT * FROM Employees WHERE Dept = 'HR'
Tabla de valores de mรบltiples declaraciones Devuelve una tabla despuรฉs de varias instrucciones. รštil para la lรณgica compleja

Las funciones fomentan la reutilizaciรณn del cรณdigo y mejoran el diseรฑo modular de las consultas.

Siempre que sea posible, deben ser deterministas (devolver el mismo resultado para la misma entrada) para optimizar el rendimiento.


18) ยฟQuรฉ es la normalizaciรณn y cuรกles son sus ventajas y desventajas?

La normalizaciรณn es el proceso de organizar los datos en una base de datos para minimizar la redundancia y mejorar la integridad. Consiste en dividir las tablas en entidades mรกs pequeรฑas y relacionadas.

Forma normal Regla Ejemplo
1NF Eliminar grupos repetidos Dividir datos separados por comas
2NF Eliminar dependencias parciales Garantizar la dependencia total de la clave primaria
3NF Eliminar dependencias transitivas Mover atributos derivados

Ventajas:

  • Reduce la redundancia.
  • Garantiza la consistencia de los datos.
  • Simplifica el mantenimiento.

Desventajas:

  • Uniones complejas.
  • Posibles compensaciones de rendimiento para las consultas analรญticas.

19) ยฟCuรกles son los diferentes tipos de restricciones en T-SQL?

Las restricciones imponen reglas sobre la integridad de los datos dentro de una tabla.

Restricciรณn Propรณsito Ejemplo
CLAVE PRIMARIA Identifica de forma รบnica cada fila PRIMARY KEY (EmpID)
Llave extranjera Enlaces entre dos tablas FOREIGN KEY (DeptID)
UNIQUE Garantiza valores de columna รบnicos UNIQUE (Email)
CHEQUEAR Valida el rango de datos CHECK (Age >= 18)
DEFAULT Proporciona valores predeterminados DEFAULT GETDATE()

Las restricciones garantizan la precisiรณn y la fiabilidad, reduciendo la necesidad de una validaciรณn exhaustiva a nivel de aplicaciรณn.


20) ยฟCรณmo se gestionan los permisos y la seguridad en T-SQL?

T-SQL gestiona la seguridad de la base de datos mediante inicios de sesiรณn, usuarios, roles y permisos.

Los permisos se pueden conceder o revocar a nivel de objeto o de esquema.

Ejemplo:

CREATE LOGIN John WITH PASSWORD = 'Strong@123';
CREATE USER John FOR LOGIN John;
GRANT SELECT, INSERT ON Employees TO John;

Mejores Prรกcticas:

  • Usa Tambiรฉn soy miembro del cuerpo docente de World Extreme Medicine (WEM) y embajadora europea de igualdad para The Transformational Travel Council (TTC). En mi tiempo libre, soy una incansable aventurera, escaladora, patrona de dรญa, buceadora y defensora de la igualdad de gรฉnero en el deporte y la aventura. En XNUMX, fundรฉ Almas Libres, una ONG nacida para involucrar, educar y empoderar a mujeres y niรฑas a travรฉs del deporte urbano, la cultura y la tecnologรญa. en lugar de permisos de usuario directos.
  • Evitar el uso de sa o cuentas del sistema para aplicaciones.
  • Audite periรณdicamente los permisos con sys.database_permissions.

Una gestiรณn adecuada de los permisos garantiza el principio de mรญnimo privilegio y el cumplimiento de las polรญticas de seguridad.


21) ยฟCuรกles son los diferentes niveles de aislamiento de transacciones en T-SQL?

Los niveles de aislamiento de las transacciones determinan cรณmo se aรญsla una transacciรณn de las demรกs, equilibrando asรญ su contenido. consistencia con concurrenciaSQL Server admite lo siguiente:

Nivel de aislamiento Descripciรณn Lectura sucia Lectura no repetible Lectura fantasma
LEER SIN COMPROMISO Lee datos no confirmados Sรญ Sรญ Sรญ
LEER COMPROMETIDO Por defecto; los bloqueos impiden lecturas sucias. No Sรญ Sรญ
LECTURA REPETIBLE Impide el cambio de datos hasta que se confirme. No No Sรญ
SERIALIZABLE Aislamiento total; bloqueo de mรกxima seguridad No No No
INSTANTรNEA Utiliza control de versiones, no bloqueo No No No

Ejemplo:

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
BEGIN TRANSACTION;
-- your code
COMMIT;

Usa INSTANTรNEA para sistemas de alta concurrencia, para minimizar el bloqueo sin sacrificar la consistencia.


22) ยฟQuรฉ es un interbloqueo en SQL Server y cรณmo se puede prevenir?

A punto muerto Se produce cuando dos transacciones mantienen bloqueos que la otra necesita, lo que genera un punto muerto. SQL Server detecta y finaliza automรกticamente una de las transacciones como vรญctima del interbloqueo.

Escenario de ejemplo:

  • La transacciรณn A bloquea la Tabla1 y luego espera a que la Tabla2 estรฉ disponible.
  • La transacciรณn B bloquea la Tabla2 y luego espera a la Tabla1.

Tรฉcnicas de prevenciรณn:

  1. Acceda a los recursos en el mismo orden.
  2. Mantรฉn las transacciones breves.
  3. Utilice los niveles de aislamiento adecuados.
  4. Evite la interacciรณn del usuario dentro de las transacciones.

Utilice SQL Profiler o Eventos extendidos para rastrear los interbloqueos en tiempo real.


23) Explique la diferencia entre el control de concurrencia pesimista y optimista.

Tipo Descripciรณn Mecanismo de bloqueo Caso de uso
Pesimista Bloquea los datos durante la transacciรณn. Bloqueo pesado Entornos de alto conflicto
Optimista Utiliza control de versiones por fila y realiza comprobaciones antes de confirmar. Bloqueo mรญnimo Cargas de trabajo con mucho volumen de lectura y bajo nivel de conflicto

Ejemplo:

  • Pesimista: Predeterminado READ COMMITTED cierre.
  • Optimista: SNAPSHOT Aislamiento con control de versiones de filas.

La concurrencia optimista mejora el rendimiento de los sistemas con grandes operaciones de lectura y actualizaciones poco frecuentes.


24) ยฟCรณmo se puede analizar y optimizar una consulta T-SQL de ejecuciรณn lenta?

  1. Revisar el plan de ejecuciรณn: Identificar escaneos, รญndices faltantes y operaciones costosas.
  2. Utilice SET STATISTICS IO/TIME: Analizar el uso de E/S y CPU.
  3. Evite cursores y bucles: Sustituir por operaciones basadas en conjuntos.
  4. Optimizaciรณn del รญndice: Agregar o reorganizar รญndices fragmentados.
  5. Rastreo de parรกmetros: Usa OPTION (RECOMPILE) para generar nuevos planes.

Ejemplo:

SET STATISTICS TIME ON;
SELECT * FROM Orders WHERE CustomerID = 123;

Monitorear regularmente las consultas lentas con Vistas de gestiรณn dinรกmica (DMV) como sys.dm_exec_query_stats es una buena prรกctica.


25) ยฟQuรฉ es SQL dinรกmico y cuรกles son sus ventajas y riesgos?

El SQL dinรกmico permite construir sentencias SQL de forma dinรกmica en tiempo de ejecuciรณn utilizando variables.

Ejemplo:

DECLARE @sql NVARCHAR(MAX);
SET @sql = 'SELECT * FROM Employees WHERE Dept = ''' + @Dept + '''';
EXEC(@sql);

Ventajas:

  • Flexibilidad para nombres de tablas o filtros variables.
  • Reutilizable para mรบltiples esquemas.

Desventajas:

  • Vulnerable a SQL Injection si no estรก parametrizado.
  • Mรกs difรญcil de depurar y mantener.

Siempre usa sp_executesql con parรกmetros de seguridad.


26) ยฟQuรฉ son los objetos temporales en T-SQL y en quรฉ se diferencian?

Los objetos temporales se almacenan en base de datos temporal y ayudar a gestionar los datos intermedios.

Tipo de objeto <b></b><b></b> Ejemplo
Tabla de temperatura local Especรญfico de la sesiรณn CREATE TABLE #TempTable
Tabla temporal global Visible para todas las sesiones CREATE TABLE ##TempGlobal
Variable de tabla Especรญfico del lote DECLARE @Temp TABLE (...)

Mejores Prรกcticas:

  • Para conjuntos de datos mรกs pequeรฑos, es preferible utilizar variables de tabla.
  • Utilice tablas temporales locales para conjuntos de datos mรกs grandes que requieran indexaciรณn.
  • Elimina explรญcitamente las tablas temporales para liberar recursos mรกs rรกpidamente.

27) ยฟCรณmo se utilizan las funciones de particiรณn de ventanas en T-SQL?

La particiรณn permite aplicar funciones de ventana a subconjuntos especรญficos de datos.

Ejemplo:

SELECT
    Department,
    EmpName,
    Salary,
    RANK() OVER (PARTITION BY Department ORDER BY Salary DESC) AS RankInDept
FROM Employees;

Beneficios:

  • Calcula de forma eficiente clasificaciones, totales y promedios por grupo.
  • Elimina la necesidad de autouniones o subconsultas.

Casos de uso: Rangos salariales, clasificaciones de ventas y anรกlisis de tendencias.


28) ยฟCuรกl es la diferencia entre UNION y UNION ALL en T-SQL?

Clรกusula Duplicados Rendimiento Caso de uso
UNIร“N Elimina duplicados Mรกs lento (utiliza sort/distinct) Combinando conjuntos de resultados de forma limpia
UNION TODO Conserva los duplicados Mรกs rรกpido Agregaciรณn o migraciรณn de datos

Ejemplo:

SELECT City FROM Customers
UNION
SELECT City FROM Suppliers;

Utilice UNION ALL cuando se aceptan duplicados y el rendimiento importa.


29) ยฟCรณmo se trabaja con datos JSON en T-SQL?

SQL Server admite funciones JSON nativas para analizar y generar datos JSON.

Ejemplo:

DECLARE @json NVARCHAR(MAX) = '{"Name":"John","Age":30}';
SELECT JSON_VALUE(@json, '$.Name') AS Name;

Funciones clave:

  • JSON_VALUE() โ†’ Extrae valores escalares.
  • JSON_QUERY() โ†’ Extrae objetos/matrices.
  • OPENJSON() โ†’ Analiza JSON y lo divide en filas.
  • FOR JSON โ†’ Convierte los resultados de la consulta al formato JSON.

รštil para API, sistemas hรญbridos e integraciones NoSQL.


30) ยฟCรณmo se puede administrar y optimizar TempDB en SQL Server?

TempDB Es una base de datos del sistema crรญtica para el almacenamiento temporal y el control de versiones. Una mala gestiรณn puede provocar graves problemas de rendimiento.

Tรฉcnicas de optimizaciรณn:

  1. Coloca TempDB en un almacenamiento rรกpido (SSD).
  2. Precalcular el tamaรฑo de los archivos de datos y de registro.
  3. Utilice varios archivos de datos (1 por nรบcleo de CPU hasta 8).
  4. Monitor con sys.dm_db_file_space_usage.
  5. Limpie regularmente los objetos temporales.

Consulta de ejemplo:

SELECT * FROM sys.dm_db_file_space_usage;

La gestiรณn proactiva de TempDB evita la contenciรณn en las pรกginas de asignaciรณn y mejora el rendimiento general de la base de datos.


31) ยฟQuรฉ son las sugerencias de consulta en T-SQL y cuรกndo deben usarse?

Las sugerencias de consulta indican al optimizador de SQL Server que modifique su plan de ejecuciรณn normal.

Deben utilizarse con moderaciรณn; solo cuando se comprenda completamente la distribuciรณn de datos y el contexto de ejecuciรณn.

Ejemplo:

SELECT * FROM Orders WITH (NOLOCK) WHERE CustomerID = 102;

Consejos comunes:

  • NOLOCK: Lecturas sin bloqueos (puede leer datos no confirmados).
  • FORCESEEK: Fuerza el รญndice de bรบsqueda en lugar del escaneo.
  • OPTIMIZE FOR: Guรญa los valores de los parรกmetros para la generaciรณn del plan.
  • RECOMPILE: Fuerza la recompilaciรณn en cada ejecuciรณn.

Precauciรณn: El uso excesivo de sugerencias puede degradar el rendimiento a medida que aumentan los datos o cambian los patrones. รšselas solo cuando se demuestre que el plan del optimizador es ineficiente.


32) Explique el concepto de almacenamiento en cachรฉ del plan de ejecuciรณn en SQL Server.

SQL Server almacena en cachรฉ los planes de ejecuciรณn para evitar la recompilaciรณn de consultas recurrentes.

Cuando se ejecuta de nuevo la misma consulta con una estructura idรฉntica, se reutiliza el plan almacenado en cachรฉ, lo que mejora el rendimiento.

Ejemplo:

EXEC GetCustomerOrders @CustomerID = 101;

Beneficios:

  • Reduce la carga de la CPU.
  • Mejora la consistencia en el tiempo de respuesta.

Problemas:

  • Detecciรณn de parรกmetros puede dar lugar a planes ineficientes.
  • El exceso de memoria en la cachรฉ de planes puede consumir mucha memoria.

Mitigaciรณn: Usa OPTION (RECOMPILE) or OPTIMIZE FOR UNKNOWN donde los parรกmetros varรญan ampliamente.


33) ยฟQuรฉ es la detecciรณn de parรกmetros y cรณmo puede afectar al rendimiento?

La detecciรณn de parรกmetros se produce cuando SQL Server utiliza los valores de los parรกmetros de la primera ejecuciรณn de una consulta para generar un plan que luego se reutiliza, incluso si no es รณptimo para ejecuciones posteriores.

Escenario de ejemplo:

  • Primera ejecuciรณn: conjunto de datos pequeรฑo โ†’ plan de bรบsqueda de รญndice.
  • Siguiente ejecuciรณn: conjunto de datos grande โ†’ se reutiliza el mismo plan, pero lento.

Soluciones:

  1. Usa OPTION (RECOMPILE) para generar nuevos planes.
  2. Utilice variables locales para enmascarar los valores de los parรกmetros.
  3. Usa OPTIMIZE FOR or OPTIMIZE FOR UNKNOWN.

La detecciรณn de parรกmetros es una de las principales causas reales de rendimiento impredecible en T-SQL.


34) ยฟCรณmo se monitorea y analiza el rendimiento de las consultas en SQL Server?

Puedes utilizar varias herramientas y DMV para perfilar y optimizar el rendimiento:

  • Planes de ejecuciรณn: Ctrl + M en SSMS o sys.dm_exec_query_plan.
  • DMV:

    • sys.dm_exec_query_stats โ€“ CPU y duraciรณn.
    • sys.dm_exec_sql_text โ€“ Texto SQL.
    • sys.dm_exec_requests โ€“ Consultas activas.
  • Monitor de rendimiento y eventos extendidos para el seguimiento a largo plazo.

Ejemplo:

SELECT TOP 5
    total_worker_time / execution_count AS AvgCPU,
    total_elapsed_time / execution_count AS AvgTime,
    SUBSTRING(qt.text, 1, 100) AS QueryText
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
ORDER BY AvgTime DESC;

35) Explique el papel de la estadรญstica en la optimizaciรณn de consultas.

Las estadรญsticas describen la distribuciรณn de datos (por ejemplo, valores distintos, densidad, histograma) que el optimizador utiliza para estimar la cardinalidad.

Si las estadรญsticas estรกn desactualizadas, SQL Server puede elegir planes inadecuados.

Comandos clave:

  • UPDATE STATISTICS Employees;
  • sp_updatestats;
  • Configuraciรณn de actualizaciรณn automรกtica: activada por defecto.

Mejores Prรกcticas:

  • Guardar AUTO_UPDATE_STATISTICS habilitada.
  • Para mesas grandes, programe actualizaciones manuales.
  • Usa FULLSCAN para รญndices crรญticos.

Las estadรญsticas obsoletas son un asesino silencioso del rendimiento.


36) ยฟCuรกl es la diferencia entre una bรบsqueda de รญndice y un escaneo de รญndice?

Operadisrupciรณn Descripciรณn Rendimiento Caso de uso
Buscar รญndice Navega directamente a las filas coincidentes. Rรกpido Consultas altamente selectivas
Escaneo del รญndice Lee todas las entradas del รญndice secuencialmente. Mรกs lento Consultas de baja selectividad

Ejemplo:

SELECT * FROM Orders WHERE OrderID = 123; -- Seek
SELECT * FROM Orders WHERE Status = 'Active'; -- May Scan

Consejo de optimizaciรณn: Cree รญndices filtrados o de cobertura para convertir los escaneos en bรบsquedas.


37) Explique las tablas particionadas y sus ventajas.

La particiรณn divide una tabla grande en partes mรกs pequeรฑas y manejables (particiones), a menudo basรกndose en una columna de rango (como la fecha).

Beneficios:

  • Gestiรณn de datos mรกs rรกpida (carga/descarga por particiรณn).
  • Mejora del rendimiento de las consultas en grandes conjuntos de datos.
  • Procesamiento paralelo para escaneos particionados.

Ejemplo:

CREATE PARTITION FUNCTION pfRange (DATETIME)
AS RANGE LEFT FOR VALUES ('2022-12-31', '2023-12-31');

Caso de uso: Almacenes de datos que manejan miles de millones de filas donde las particiones antiguas se pueden archivar de manera eficiente.


38) ยฟQuรฉ son las CTE recursivas y quรฉ limitaciones tienen?

A Expresiรณn de tabla comรบn recursiva (CTE) Se refiere a sรญ mismo, normalmente para datos jerรกrquicos como organigramas o estructuras de รกrbol.

Ejemplo:

WITH EmployeeCTE AS (
    SELECT EmpID, ManagerID, EmpName FROM Employees WHERE ManagerID IS NULL
    UNION ALL
    SELECT e.EmpID, e.ManagerID, e.EmpName
    FROM Employees e
    INNER JOIN EmployeeCTE c ON e.ManagerID = c.EmpID
)
SELECT * FROM EmployeeCTE;

Limitaciones:

  • Lรญmite de recursiรณn predeterminado = 100 niveles.
  • Puede provocar problemas de rendimiento si la profundidad de recursiรณn es alta.
  • Usa OPTION (MAXRECURSION n) para ajustar el lรญmite.

39) ยฟCรณmo maneja SQL Server los errores internamente en las transacciones?

Cuando se produce un error en una transacciรณn:

  • Si grave (nivel > 20)La conexiรณn se interrumpe inmediatamente.
  • If no grave, se puede atrapar con TRY...CATCH.

Ejemplo:

BEGIN TRY
    BEGIN TRANSACTION;
    UPDATE Accounts SET Balance -= 500 WHERE ID = 1;
    INSERT INTO AuditLog VALUES ('Debit');
    COMMIT TRANSACTION;
END TRY
BEGIN CATCH
    ROLLBACK TRANSACTION;
    PRINT ERROR_MESSAGE();
END CATCH;

Mejora la prรกctica: Siempre incluya las operaciones DML en un bloque TRYโ€ฆCATCH para garantizar la tolerancia a errores.


40) ยฟCuรกles son algunas tรฉcnicas avanzadas de ajuste del rendimiento de T-SQL?

  1. Evite las UDF escalares. En SELECT, las funciones en lรญnea son mรกs rรกpidas.
  2. Utilizar รญndices filtrados para reducir el tamaรฑo del รญndice.
  3. Aprovechar el procesamiento de transacciones en lรญnea (OLTP) en memoria (Hekaton) para sistemas de alta concurrencia.
  4. Ejecuciรณn en modo por lotes sobre รญndices de almacenamiento en columnas para anรกlisis.
  5. Eliminar conversiones implรญcitas al hacer coincidir los tipos de datos.
  6. Utilice el almacรฉn de consultas para comparar planes histรณricos.

Ejemplo para detectar conversiones implรญcitas:

SELECT * FROM sys.dm_exec_query_stats CROSS APPLY sys.dm_exec_query_plan(plan_handle)
WHERE CAST(query_plan AS NVARCHAR(MAX)) LIKE '%CONVERT_IMPLICIT%';

La optimizaciรณn del rendimiento es un proceso continuo, no un evento puntual.


41) ยฟCรณmo identificarรญa las consultas que consumen mรกs recursos en SQL Server?

Puede identificar las consultas de alto costo utilizando las Vistas de administraciรณn dinรกmica (DMV) que registran las estadรญsticas histรณricas de ejecuciรณn.

Ejemplo:

SELECT TOP 10
    total_logical_reads / execution_count AS AvgReads,
    total_worker_time / execution_count AS AvgCPU,
    total_elapsed_time / execution_count AS AvgDuration,
    SUBSTRING(qt.text, 1, 200) AS QueryText
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
ORDER BY AvgCPU DESC;

Mรฉtricas clave:

  • AvgCPUTiempo promedio de CPU por ejecuciรณn.
  • AvgReadsIntensidad de entrada/salida.
  • AvgDurationLatencia de ejecuciรณn.

Este enfoque ayuda a los administradores de bases de datos a aislar las consultas pesadas antes de que los usuarios noten siquiera la degradaciรณn del rendimiento.


42) ยฟCรณmo se pueden detectar y corregir los รญndices faltantes en SQL Server?

SQL Server realiza un seguimiento automรกtico de las recomendaciones de รญndices faltantes a travรฉs de las DMV.

Ejemplo:

SELECT
    migs.user_seeks AS Seeks,
    mid.statement AS TableName,
    mid.equality_columns,
    mid.inequality_columns,
    mid.included_columns
FROM sys.dm_db_missing_index_details mid
JOIN sys.dm_db_missing_index_groups mig ON mid.index_handle = mig.index_handle
JOIN sys.dm_db_missing_index_group_stats migs ON mig.index_group_handle = migs.group_handle
ORDER BY migs.user_seeks DESC;

Mejores Prรกcticas:

  • Priorizar primero los รญndices de alta demanda.
  • Verificar mediante planes de ejecuciรณn antes de la creaciรณn.
  • Evite la sobreindexaciรณn; ralentiza las escrituras.

43) ยฟCuรกl es la diferencia entre la creaciรณn de reflejos de bases de datos, la replicaciรณn y el envรญo de registros?

Caracterรญstica Propรณsito Gestiรณn del riesgo Failover Complejidad:
Reflejando Copia de base de datos de alta disponibilidad Sรญ Automรกtico Media
Replicaciรณn Distribuciรณn de datos en bases de datos Parcial Manual Alto
Envรญo de troncos Estrategia de recuperaciรณn ante desastres basada en copias de seguridad No Manual Bajo

Guรญa de uso:

  • Duplicaciรณn โ†’ Sistemas OLTP de alta disponibilidad.
  • Replicaciรณn โ†’ Informes distribuidos.
  • Envรญo de registros โ†’ Configuraciones de recuperaciรณn ante desastres.

44) ยฟCรณmo se solucionan los problemas de bloqueo en SQL Server?

El bloqueo se produce cuando un proceso mantiene bloqueos que otro proceso necesita.

Para identificar los bloqueadores:

SELECT
    blocking_session_id AS Blocker,
    session_id AS Blocked,
    wait_type,
    wait_time,
    wait_resource
FROM sys.dm_exec_requests
WHERE blocking_session_id <> 0;

Soluciones:

  • Reducir la duraciรณn de las transacciones.
  • Utilice el aislamiento de instantรกneas.
  • Ajusta las consultas para minimizar el bloqueo.
  • Identificar transacciones abiertas de larga duraciรณn con DBCC OPENTRAN.

45) ยฟCรณmo ayuda el Almacรฉn de Consultas de SQL Server en la optimizaciรณn del rendimiento?

Query Store captura el texto de la consulta, los planes y las estadรญsticas de tiempo de ejecuciรณn, lo que permite anรกlisis de regresiรณn del plan.

Ayuda a identificar cuรกndo una consulta se vuelve repentinamente lenta debido a cambios en el plan.

Ejemplo:

SELECT q.query_id, p.plan_id, rs.avg_duration
FROM sys.query_store_query q
JOIN sys.query_store_plan p ON q.query_id = p.query_id
JOIN sys.query_store_runtime_stats rs ON p.plan_id = rs.plan_id
ORDER BY rs.avg_duration DESC;

Beneficios:

  • Comparar planos histรณricos.
  • Impulsa buenos planes.
  • Realizar un seguimiento de las tendencias de rendimiento a lo largo del tiempo.

46) ยฟCรณmo se puede prevenir la inyecciรณn SQL en aplicaciones T-SQL?

Defensas primarias:

  1. Usa consultas parametrizadas vรญa sp_executesql.
  2. Validar y desinfectar todas las entradas del usuario.
  3. Evite la concatenaciรณn dinรกmica de SQL.
  4. Emplear principio de privilegio mรญnimo para cuentas de bases de datos.

Ejemplo seguro:

DECLARE @sql NVARCHAR(MAX);
SET @sql = N'SELECT * FROM Employees WHERE Dept = @Dept';
EXEC sp_executesql @sql, N'@Dept NVARCHAR(50)', @Dept = 'HR';

Aunque la inyecciรณn SQL es a nivel de aplicaciรณn, Los administradores de bases de datos deben auditar los procedimientos almacenados y los registros. para ejecuciรณn sin parรกmetros.


47) ยฟCรณmo utiliza los Eventos Extendidos para una monitorizaciรณn profunda del rendimiento?

Extended Events (XEvents) es un marco de monitoreo de rendimiento ligero: una alternativa moderna a SQL Trace.

Ejemplo:

CREATE EVENT SESSION TrackQueries
ON SERVER
ADD EVENT sqlserver.sql_statement_completed
(WHERE duration > 1000)
ADD TARGET package0.event_file (SET filename = 'C:\Temp\QueryMonitor.xel');
ALTER EVENT SESSION TrackQueries ON SERVER STATE = START;

Casos de uso:

  • Monitorizar las consultas que consumen muchos recursos de CPU.
  • Captura interbloqueos o รญndices faltantes.
  • Perfile las sentencias de larga duraciรณn en producciรณn con una sobrecarga mรญnima.

48) ยฟQuรฉ son los รญndices filtrados y cuรกndo deben usarse?

Un รญndice filtrado indexa solo un subconjunto de filas que cumplen una condiciรณn de filtro, lo que mejora el rendimiento y reduce el almacenamiento.

Ejemplo:

CREATE INDEX IX_ActiveEmployees
ON Employees (Department)
WHERE Status = 'Active';

Beneficios:

  • รndice de menor tamaรฑo.
  • Mantenimiento mรกs rรกpido.
  • Optimizado para consultas selectivas.

Mejores For: Columnas con distribuciรณn de datos sesgada (por ejemplo, registros activos frente a inactivos).


49) ยฟCรณmo se migran los datos de forma segura entre entornos de SQL Server?

La migraciรณn segura de datos implica planificaciรณn para consistencia, tiempo de inactividad y reversiรณn.

Mejores Prรกcticas:

  1. Usa replicaciรณn transaccional or cambiar la captura de datos (CDC) para sincronizaciรณn en directo.
  2. Desactive temporalmente las restricciones y los activadores.
  3. Usa BCP or SSIS para la transferencia masiva de datos.
  4. Validar el nรบmero de filas y las sumas de comprobaciรณn.
  5. Ejecute siempre comprobaciones de integridad posteriores a la migraciรณn (DBCC CHECKDB).

Ejemplo:

bcp Database.dbo.Table out TableData.dat -n -S Server -T

Probar los scripts de migraciรณn en el entorno de pruebas es imprescindible.


50) ยฟCรณmo se identifican y solucionan los problemas de consultas sensibles a parรกmetros (PSQ)?

Las consultas que dependen de parรกmetros tienen un rendimiento inconsistente segรบn los valores de los parรกmetros; un desafรญo frecuente en el mundo real.

Detecciรณn: Usa Almacรฉn de consultas or sys.dm_exec_query_stats identificar mรบltiples planes para una consulta.

Estrategias de soluciรณn:

  1. Usa OPCIร“N (RECOMPILAR) para cada ejecuciรณn.
  2. Usa OPTIMIZAR PARA LO DESCONOCIDO para crear un plan genรฉrico.
  3. Crear guรญas de planificaciรณn para garantizar rutas de ejecuciรณn รณptimas.
  4. Usa sugerencias de consulta Solo si es necesario.

Las cuestiones sensibles a los parรกmetros requieren un equilibrio entre la estabilidad del plan y la previsibilidad del rendimiento.

๐Ÿ” Principales preguntas de entrevista sobre T-SQL con escenarios reales y respuestas estratรฉgicas

1) ยฟCuรกl es la diferencia entre INNER JOIN y LEFT JOIN en T-SQL?

Se espera del candidato: El entrevistador quiere evaluar tu comprensiรณn de las operaciones de uniรณn y cรณmo se gestionan las relaciones de datos en las consultas SQL.

Respuesta de ejemplo: An INNER JOIN devuelve solo las filas que tienen valores coincidentes en ambas tablas, mientras que una LEFT JOIN Devuelve todas las filas de la tabla izquierda, junto con las filas coincidentes de la tabla derecha. Si no hay coincidencia, se devuelven valores NULL para las columnas de la tabla derecha. Esta distinciรณn es crucial al trabajar con relaciones parciales u opcionales en bases de datos.


2) ยฟCรณmo identificarรญa y eliminarรญa los registros duplicados de una tabla en T-SQL?

Se espera del candidato: El entrevistador quiere ver su capacidad para utilizar funciones de ventana y CTE para abordar problemas de calidad de datos.

Respuesta de ejemplo: Utilizarรญa una expresiรณn de tabla comรบn (CTE) combinada con la ROW_NUMBER() Funciรณn para identificar duplicados. Por ejemplo:

WITH CTE AS (
  SELECT *, ROW_NUMBER() OVER (PARTITION BY column1, column2 ORDER BY id) AS rn
  FROM MyTable
)
DELETE FROM CTE WHERE rn > 1;

Este enfoque ayuda a eliminar duplicados al tiempo que conserva un registro รบnico para cada grupo.


3) ยฟPuedes explicar quรฉ es una CTE (Expresiรณn de Tabla Comรบn) y cuรกndo la usarรญas?

Se espera del candidato: El entrevistador estรก comprobando tus conocimientos sobre estructuraciรณn de consultas y conjuntos de resultados temporales.

Respuesta de ejemplo: Una CTE es un conjunto de resultados temporal definido dentro del รกmbito de ejecuciรณn de una รบnica consulta. Resulta รบtil para simplificar combinaciones y subconsultas complejas, mejorar la legibilidad y permitir consultas recursivas. En mi puesto anterior, utilizaba las CTE con frecuencia para dividir la lรณgica de agregaciรณn de varios pasos en componentes mรกs fรกciles de mantener.


4) ยฟCรณmo se gestiona la optimizaciรณn del rendimiento en las consultas T-SQL?

Se espera del candidato: El entrevistador quiere evaluar su experiencia con la optimizaciรณn de consultas y la resoluciรณn de problemas de rendimiento.

Respuesta de ejemplo: Comienzo examinando el plan de ejecuciรณn para identificar operaciones lentas como escaneos de tablas o combinaciones costosas. Luego, verifico si faltan รญndices, si hay subconsultas redundantes o combinaciones ineficientes. Tambiรฉn analizo estadรญsticas y utilizo estrategias de indexaciรณn, como รญndices de cobertura o รญndices filtrados, para mejorar el rendimiento. Finalmente, reviso la lรณgica de la consulta para asegurar que utilice operaciones basadas en conjuntos en lugar de procesamiento fila por fila.


5) Describe una ocasiรณn en la que tuviste que depurar una consulta lenta en producciรณn. ยฟQuรฉ pasos seguiste?

Se espera del candidato: Esta pregunta conductual evalรบa tus habilidades de resoluciรณn de problemas y comunicaciรณn en situaciones reales.

Respuesta de ejemplo: En mi puesto anterior, una consulta de informe tardaba mรกs de 20 minutos en ejecutarse. Analicรฉ el plan de ejecuciรณn y descubrรญ que a una de las uniones le faltaba un รญndice en una columna de clave externa. Tras crear el รญndice y actualizar las estadรญsticas, el tiempo de ejecuciรณn de la consulta se redujo a menos de 30 segundos. Tambiรฉn documentรฉ la soluciรณn y la compartรญ con el equipo para evitar problemas similares en el futuro.


6) ยฟQuรฉ son las tablas temporales y las variables de tabla, y en quรฉ se diferencian?

Se espera del candidato: El entrevistador estรก evaluando tu comprensiรณn de las opciones de almacenamiento temporal de datos en T-SQL.

Respuesta de ejemplo: Tablas temporales (#TempTableLas variables de tabla ( ) se crean en la base de datos tempdb y admiten รญndices, restricciones y estadรญsticas.@TableVarLas tablas temporales se almacenan en memoria y tienen soporte estadรญstico limitado, por lo que son adecuadas para conjuntos de datos pequeรฑos. Son mejores para conjuntos de datos grandes o complejos, mientras que las variables de tabla son mรกs eficientes para datos pequeรฑos y de corta duraciรณn.


7) ยฟCรณmo manejarรญa el manejo de errores y las transacciones en T-SQL?

Se espera del candidato: El entrevistador estรก comprobando su comprensiรณn de la integridad transaccional y el manejo de excepciones.

Respuesta de ejemplo: yo suelo BEGIN TRANSACTION, COMMIT y ROLLBACK declaraciones para garantizar la coherencia de los datos. Tambiรฉn incluyo TRY...CATCH bloques para gestionar los errores de forma elegante. Por ejemplo:

BEGIN TRY
  BEGIN TRANSACTION
    -- SQL operations here
  COMMIT TRANSACTION
END TRY
BEGIN CATCH
  ROLLBACK TRANSACTION
  PRINT ERROR_MESSAGE()
END CATCH

Este enfoque evita las actualizaciones parciales de datos cuando se producen errores.


8) ยฟCรณmo se utilizan las funciones de ventana en T-SQL y puede dar un ejemplo?

Se espera del candidato: El entrevistador quiere evaluar su dominio de consultas analรญticas avanzadas.

Respuesta de ejemplo: Las funciones de ventana permiten realizar cรกlculos en conjuntos de filas relacionadas con la fila actual sin agrupar los datos. Por ejemplo:

SELECT 
  EmployeeID, 
  Salary,
  RANK() OVER (ORDER BY Salary DESC) AS SalaryRank
FROM Employees;

Esto asigna nรบmeros de clasificaciรณn a los empleados en funciรณn de su salario, lo que facilita el anรกlisis de las tendencias de rendimiento.


9) Cuรฉntame sobre un proyecto complejo de T-SQL en el que hayas trabajado y cรณmo abordaste sus desafรญos.

Se espera del candidato: El entrevistador busca experiencia profunda, capacidad para resolver problemas y trabajo en equipo.

Respuesta de ejemplo: En mi รบltimo puesto, desarrollรฉ un pipeline ETL para un almacรฉn de datos utilizando procedimientos almacenados en T-SQL. El reto consistรญa en gestionar grandes volรบmenes de datos de forma eficiente. Optimizรฉ las consultas mediante tablas particionadas, cargas incrementales y procesamiento por lotes. Ademรกs, coordinรฉ con el equipo de BI para garantizar la coherencia en el diseรฑo de los esquemas y mejorar la velocidad de generaciรณn de informes en mรกs de un 40 %.


10) ยฟCรณmo manejarรญa una situaciรณn en la que un procedimiento almacenado que usted escribiรณ causรณ un interbloqueo en producciรณn?

Se espera del candidato: El entrevistador estรก evaluando su capacidad de gestiรณn de crisis y sus conocimientos tรฉcnicos.

Respuesta de ejemplo: Primero identificarรญa el interbloqueo utilizando SQL Server. sys.dm_tran_locks y grรกficos de interbloqueo. Luego, analizaba el orden de acceso a los recursos y refactorizaba el procedimiento para adquirir bloqueos en una secuencia consistente. En mi trabajo anterior, tambiรฉn implementรฉ lรณgica de reintento para las transacciones afectadas y programรฉ una monitorizaciรณn periรณdica para detectar patrones similares de forma temprana.

Resumir este post con: