Yo diría que hay dos tipos de cosas que debe saber con respecto a SQL (esto es cierto para muchas tecnologías realmente), hay cosas técnicas específicas como uniones, subconsultas, uniones, etc. que usted comprende o no, y luego hay cosas como el diseño de bases de datos y el modelado de datos que tiene un gradiente de habilidad, como el arte. Mejora con el tiempo con esas cosas más suaves, pero nunca las "conoce" porque no hay "funcionan de esta manera" con ellas.
Dicho esto, aquí hay un diseño general con el que iría, y estoy absolutamente abierto a comentarios / pensamientos de otros en los que pueda estar equivocado.
Principiante
- Donde cláusulas (en, entre, etc.)
- Actualizar sintaxis
- Comprensión interna y izquierda versus derecha unir comprensión y uso
- Sintaxis para alterar y crear estructuras
- Tablas temporales y su uso.
- Cursores
- Idea básica para qué sirven los índices, aunque no cómo funcionan
- Comprender para qué sirven las claves externas y cómo solucionarlas (eliminaciones en cascada, etc.)
- Comprende los conceptos básicos de las transacciones.
- Comprende las restricciones
Intermedio
- Cómo funcionan los índices, la diferencia entre agrupados, no agrupados, etc., qué es una página y cómo se distribuyen
- Comprensión de las subconsultas, y puede pensar en usarlas en uniones y dónde
- Pivotes
- Puede pensar uniéndose a una tabla en sí mismo cuando sea relevante
- Puede generar informes de datos complejos a través de grupos bys con funciones agregadas
- Puede hacer perfiles básicos solo en una capacidad de monitoreo / depuración como leer un registro
- Entiende la diferencia entre OLAP y OLTP y cuándo / dónde usar estructuras OLAP
- Sabe usar disparadores y no usarlos
- Entiende las transacciones y puede superponerlas manejando fallas en la pila
Avanzado
- Puede leer un plan de ejecución y comprender cómo las diferentes partes de la consulta lo afectan
- Puede ajustar las consultas con sugerencias de ejecución sin arruinar el rendimiento (sugerencias de paralelismo, sugerencias de índice, sugerencias de bucle, etc.)
- Puede perfilar y usar trazas para identificar y comprender estadísticas de ejecuciones bajo carga del mundo real
- Sabe cuáles son las estructuras de datos en el disco.
- Puede usar contadores de rendimiento y comprender cuál es la carga y el comportamiento de la base de datos al monitorearlos
- Sabe cómo diseñar un cubo OLAP y hacer minería de datos avanzada con uno
- Sabe cómo usar desencadenantes y cómo usarlos de manera segura, con un riesgo mínimo
- Sabe usar transacciones distribuidas incluso con capas
Eso es todo lo que se me ocurrió en la cabeza. Por favor, deje comentarios mencionando a otros que extrañé o si puse algo en el lugar equivocado No estoy lo suficientemente avanzado como para saber una gran lista de técnicas avanzadas para sofocar je