Preguntas de entrevista para desarrolladores de SQL Server: DMVs

Índice de Contenido
  1. Preguntas de entrevista para desarrolladores de SQL Server
  2. ¿Qué son las vistas de administración dinámica (DMVs) y cómo se utilizan?
  3. ¿Qué son las tablas temporales y cuál es la diferencia entre tablas temporales globales y locales?
  4. ¿Cómo se utilizan las transacciones en SQL Server?
  5. ¿Cuál es la diferencia entre un índice clúster y un índice no clúster?
  6. ¿Qué son los comandos DBCC?
  7. ¿Cuál es la diferencia entre truncate y delete?
  8. ¿Qué hace la instrucción NOLOCK en una consulta?
  9. ¿Qué es una expresión de tabla común (CTE)?
  10. ¿Qué es una vista y para qué se utiliza la cláusula WITH CHECK OPTION en una vista?
  11. ¿Qué es un plan de ejecución de consulta?
  12. ¿Qué hace el servicio de Windows SQL Server Agent?
  13. ¿Cuál es el número de puerto predeterminado para SQL Server?

Preguntas de entrevista para desarrolladores de SQL Server

En esta entrega de la serie de Newsmatic sobre preguntas de entrevista para desarrolladores, nos enfocaremos en el tema de SQL Server. Estas preguntas, aplicables a SQL Server 2008, no pretenden ser la única forma de evaluar la aptitud técnica de un candidato durante una entrevista, sino más bien una pieza del rompecabezas que puede dar lugar a discusiones más detalladas. La profundidad de las preguntas puede variar según el nivel del puesto vacante; por ejemplo, se espera más de un candidato de nivel senior que de uno de nivel junior.

Nota: Este contenido también está disponible como un PDF descargable.

¿Qué son las vistas de administración dinámica (DMVs) y cómo se utilizan?

Las vistas de administración dinámica (DMVs) y las funciones devuelven información sobre el estado del servidor que se puede utilizar para monitorear la salud de una instancia del servidor, diagnosticar problemas y ajustar el rendimiento. Es decir, te permiten ver lo que está sucediendo dentro de SQL Server. Fueron introducidas en SQL Server 2005 como una alternativa a las tablas del sistema. Un ejemplo es ver las estadísticas de espera del sistema operativo a través de esta consulta:

SELECT * FROM sys.dm_os_wait_stats;

Otro ejemplo es examinar las sesiones actuales, de manera similar al comando sp_who2:

SELECT * FROM sys.dm_exec_sessions;

¿Qué son las tablas temporales y cuál es la diferencia entre tablas temporales globales y locales?

Las tablas temporales son estructuras de almacenamiento temporales. Puedes utilizarlas como cubetas para almacenar datos que manipularás antes de llegar a un formato final. El carácter almohadilla (#) se utiliza para declarar una tabla temporal, ya que se antepone al nombre de la tabla. Una sola almohadilla (#) especifica una tabla temporal local.

CREATE TABLE #tempLocal ( nameid int, fname varchar(50), lname varchar(50) )

Las tablas temporales locales están disponibles para la conexión actual del usuario, por lo que desaparecerán cuando el usuario se desconecte.

Domina tus bases de datos con Toad: el aliado perfecto para tu gestión

Las tablas temporales globales se pueden crear con doble almohadilla (##). Estas están disponibles para todos los usuarios a través de todas las conexiones y se eliminan solo cuando todas las conexiones se cierran.

CREATE TABLE ##tempGlobal ( nameid int, fname varchar(50), lname varchar(50) )

Una vez creadas, estas tablas se utilizan de la misma manera que las tablas permanentes; deben eliminarse cuando haya terminado con ellas. Dentro de SQL Server, las tablas temporales se almacenan en la carpeta "Tablas Temporales" de la base de datos tempdb.

¿Cómo se utilizan las transacciones en SQL Server?

Las transacciones te permiten agrupar comandos SQL en una única unidad. La transacción comienza con una tarea específica y finaliza cuando todas las tareas dentro de ella se completan. La transacción se completa exitosamente solo si todos los comandos dentro de ella se completan correctamente. Si un comando falla, toda la transacción falla. Los comandos BEGIN TRANSACTION, ROLLBACK TRANSACTION y COMMIT TRANSACTION se utilizan para trabajar con transacciones. Un grupo de tareas comienza con el comando BEGIN. Si ocurren problemas, se ejecuta el comando ROLLBACK para abortar la transacción. Si todo va bien, todos los comandos se ejecutan de manera permanente a través del comando COMMIT.

¿Cuál es la diferencia entre un índice clúster y un índice no clúster?

Un índice clúster afecta la forma en que las filas de datos de una tabla se almacenan en el disco. Cuando se utiliza un índice clúster, las filas se almacenan en orden secuencial según el valor de la columna del índice; por esta razón, una tabla puede contener solo un índice clúster, que generalmente se utiliza en el valor de índice primario.

Un índice no clúster no afecta la forma en que se almacenan físicamente los datos; crea un nuevo objeto para el índice y almacena las columnas designadas para el índice con un puntero de regreso a la fila que contiene los valores indexados.

Puedes pensar en un índice clúster como un diccionario en orden alfabético y un índice no clúster como el índice de un libro.

Las 5 mejores herramientas para administrar tus bases de datos MySQL

¿Qué son los comandos DBCC?

Básicamente, el Comprobador de Consistencia de Base de Datos (DBCC) proporciona un conjunto de comandos (muchos de los cuales no están documentados) para mantener las bases de datos: mantenimiento, validación y verificación de estado. La sintaxis es DBCC seguido del nombre del comando. Aquí hay tres ejemplos:

DBCC CHECKALLOC: Comprueba la consistencia de la asignación en disco.

DBCC OPENTRAN: Muestra información sobre las transacciones recientes.

DBCC HELP: Muestra la ayuda para los comandos DBCC.

¿Cuál es la diferencia entre truncate y delete?

TRUNCATE es una forma rápida de vaciar una tabla. Elimina todo sin registrar cada fila. TRUNCATE fallará si existen relaciones de clave externa en la tabla. Por otro lado, el comando DELETE elimina filas de una tabla, registrando cada eliminación y activando cualquier disparador de eliminación presente.

¿Qué hace la instrucción NOLOCK en una consulta?

Las sugerencias de tabla te permiten anular el comportamiento predeterminado del optimizador de consultas para las sentencias. Se especifican en la cláusula FROM de la sentencia. Si bien no siempre se recomienda anular el optimizador de consultas, puede ser útil cuando muchos usuarios o procesos están trabajando con los mismos datos. La sugerencia de consulta NOLOCK es un buen ejemplo, ya que te permite leer datos independientemente de quién más esté trabajando con los datos. Es decir, te permite leer datos sin importar si otros usuarios los están manipulando. Una sugerencia como NOLOCK aumenta la concurrencia con grandes almacenes de datos.

El 45% de las empresas no sabe dónde se encuentra la información sensible de sus clientes y usuarios
SELECT * FROM table_name (NOLOCK)

Microsoft desaconseja el uso de NOLOCK, ya que está siendo reemplazado por la sugerencia de consulta READUNCOMMITTED. Existen muchas más sugerencias de consulta con mucha información disponible en línea.

¿Qué es una expresión de tabla común (CTE)?

Una expresión de tabla común (CTE) es un conjunto de resultados nombrado y temporal que se puede utilizar dentro de otras instrucciones SELECT, INSERT, UPDATE y DELETE. No se almacena como un objeto y su tiempo de vida se limita a la consulta. Se define utilizando la instrucción WITH como muestra el siguiente ejemplo:

WITH ExampleCTE (id, fname, lname)
AS
(
SELECT id, firstname, lastname FROM table
)
SELECT * FROM ExampleCTE

Una CTE se puede utilizar en lugar de una vista en algunas instancias.

¿Qué es una vista y para qué se utiliza la cláusula WITH CHECK OPTION en una vista?

Una vista es una tabla virtual que consiste en campos de una o más tablas reales. Las vistas se utilizan frecuentemente para unir múltiples tablas o para controlar el acceso a las tablas subyacentes.

La cláusula WITH CHECK OPTION en una vista evita las modificaciones a los datos que no cumplen con la cláusula WHERE de la definición de la vista. Esto permite actualizar los datos a través de la vista, pero solo si pertenecen a la vista.

¿Qué es un plan de ejecución de consulta?

SQL Server cuenta con un optimizador que generalmente trabaja de manera eficiente para maximizar la ejecución de consultas. Un plan de ejecución de consulta es el desglose de cómo el optimizador ejecutará (o ejecutó) una consulta. Hay varias formas de ver un plan de ejecución de consulta, como usar la opción "Mostrar plan de ejecución" dentro del Analizador de consultas, mostrar el plan de ejecución estimado en el menú desplegable de la consulta o utilizar el comando SET SHOWPLAN_TEXT ON antes de ejecutar una consulta y capturar el evento del plan de ejecución en un rastreo del Perfilador de SQL Server.

Comparativa de Snowflake y Firebolt: características

¿Qué hace el servicio de Windows SQL Server Agent?

SQL Server Agent es un servicio de Windows que gestiona tareas programadas dentro del entorno de SQL Server (conocidas como trabajos). Los trabajos se almacenan/definen dentro de SQL Server y contienen uno o más pasos que definen lo que sucede cuando se ejecuta el trabajo. Estos trabajos pueden ejecutarse bajo demanda, así como a través de un evento o un horario predefinido. Este servicio es muy importante para determinar por qué un determinado trabajo no se ejecutó según lo planeado, a menudo es tan simple como que el servicio de SQL Server Agent no estaba en ejecución.

¿Cuál es el número de puerto predeterminado para SQL Server?

Si está habilitada, la instancia predeterminada de Microsoft SQL Server se escucha en el puerto TCP 1433. Las instancias con nombre se configuran para utilizar puertos dinámicos, por lo que se elige un puerto disponible cuando SQL Server se inicia. Cuando te conectas a una instancia con nombre a través de un firewall, debes configurar el Motor de base de datos para que escuche en un puerto específico, de modo que se pueda abrir el puerto correspondiente en el firewall.

La lista de posibles preguntas es interminable. Estoy seguro de que estas preguntas generarán debate y discusión.

Mantén tus habilidades de ingeniería actualizadas suscribiéndote al boletín gratuito de Newsmatic para ingenieros de software, que se entrega todos los martes.

La importancia de desarrollar una estrategia integral de retención de datos para tu empresa

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Gestión de datos, allí encontraras muchos artículos similares a Preguntas de entrevista para desarrolladores de SQL Server: DMVs , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.