Lo que leeremos ahora es una solución bastante artesanal para tracear consultas SQL. Cuando leia mis feeds y leí el título de Cómo “tracear” consultas SQL entré inmediatamente debido a que desconocía un método para realizar esta tarea. Lo que suele suceder es que aveces queremos resolver los problemas de una forma prolija y elegante y lo cierto es que la solución puede ser bastante más rudimentaria pero muy ingeniosa.
Muchas veces suele ser tarea común la de consultar en MySQL el slow query log o verificar en tiempo real con un show processlist cual es esa consulta que está volviendo lento al servidor. Conocida la consulta, ¿como se cual es la aplicación que utiliza dicha consulta?. A menos que conozcamos muy bien nuestro sistema, debemos empezar a buscar en nuestros archivos y hacer algunos que otros grep recursivos hasta encontrar con la aplicación culpable de esa consulta lenta.
Pinal Dave, MVP (Most Valuable Professional) en SQL Server, publicó hace un tiempo una guía de “estándares” para la codificación en SQL Server (Parte 1, Parte 2), aunque la mayoría de los lineamientos pueden ser aplicados tranquilamente en cualquier código SQL.
A pesar que los estándares suelen limitarnos mucho y darnos la sensación de perder creatividad en algunos aspectos, son mucho más preferibles que a no tenerlos.
Publico abajo algunas de las reglas mencionadas en el blog de sqlauthority traducidas al español y aplicables a SQL en general (no enfocado directamente en TSQL). (más…)
El principio para la creación de cadenas SQL a partir de SQL consiste, básicamente, en recorrer la metadata (information schema) de una base de datos y armar strings sql a partir de la concatenación strings constantes y del nombre de los objetos (nombre de tablas, nombre de campos, nombre de constraints, etc.) de la base de datos.
Las consultas SQL utilizadas pueden variar en cuanto a los nombres de los campos, tablas involucradas u objetos del sistema de acuerdo al sistema de gestión de base de datos utilizado, pero el funcionamiento es el mismo. El único esfuerzo extra a realizar será investigar el diccionario de datos de cada DBMS.
Los ejemplos mencionados en el artículo original, correspoden a consultas de Oracle, en nuestro caso, veremos ejemplos similares para una base de datos MySQL:
La intención de esta publicación es hacer un breve resumen de los distintos tipos de JOINs disponibles en SQL y para finalizar, un ejemplo práctico de cada uno de ellos.
MySQL tiene una sintaxis bastante flexible comparada con MS SQL al momento de hacer JOINs. En MySQL puedes hacer un JOIN de dos maneras, sin embargo, sería conveniente hacerlo de la forma de MS SQL de manera de que el código sea más portable.
