Saltear al contenido principal

Alternativas de uso de SQLCMD en SQL Server

Seguramente ya viste la publicación de Cómo usar SQLCMD en SQL Server para tener listos los primeros pasos y dar curso a las posibilidades que tenemos con esta herramienta. Ahora es el turno de ver cuáles son las alternativas de uso de SQLCMD.

Así como puedo decirte que hay infinidad de opciones desde SQLCMD en línea de comandos, puedo decirte que prácticamente puedes hacer TODO lo que haces desde SQL Server Mangement Studio (SSMS) en SQLCMD.

Cuando ya has establecido la conexión con la instancia correspondiente, solo basta con ejecutar cualquier consulta como lo harías desde SSMS.

alternativas de uso de SQLCMD
Ejecución habitual de consultas

¿Entonces cómo aprovechar las alternativas de uso de SQLCMD?

Personalmente me encanta utilizarlo con tres acciones recurrentes en el trabajo del Desarrollador de Base de Datos y del DBA.

  1. Automatización de tareas operativas
  2. Ejecución de tareas de Mantenimiento
  3. Testing y stress

1. Automatización de Tareas

Nada como el clásico Task Scheduler de Windows. Tener la alternativa de programar tareas desde el sistema operativo siempre fue el as bajo la manga. Y ni qué decir, cumple con su objetivo. Programar tareas en el tiempo que tú decidas con la seguridad necesaria es simplemente una gran opción. (Sin embargo, podría discutir un poco el historial de ejecuciones pero este no es el momento).

Programar una tarea en sistema operativo que ejecute un comando SQLCMD, nos da esta apertura de señalar una fecha y hora de ejecución de consultas en SQL Server. Particularmente cuando no tenemos la posibilidad de habilitar un SQL Server Agent y crear unos Jobs.

¿Qué tareas piensas que pueden automatizarse? Yo te sugeriría considerar la recopilación de información importante para tu administración de la instancia. Esto puede ser: contadores de rendimiento, tamaños de bases de datos, reportes para auditoría, y tantas otras.

2. Ejecución de Tareas de Mantenimiento

Programada o no a través de un Task Scheduler o un Job, puedes generar tus propios scripts de ejecución rápida de tareas de mantenimiento. Fácilmente puedes crear un archivo batch .bat que tenga la llamada al SQLCMD para ejecutar alguna de las tareas de Mantenimiento.

¿En qué tareas podemos pensar? Son otras varias. Tal vez sobretodo obtención de backups o restauración de respaldos para ambientes de desarrollo (que usualmente se actualizan periódicamente). También check y revisión de integridad de Base de Datos, reconstrucción o reorganización de índices o notificaciones por correo electrónico.

Puedes ver más detalles sobre Tareas Programadas con SQLCMD.

3. Testing y stress

Existen diferentes herramientas para Testing y entre ellas las gratuitas y las de pago. Otra de las bondades del SQLCMD es que te permite la ejecución concurrente de llamadas a una base de datos SQL Server. Esto ayuda en la simulación de concurrencia de múltiples usuarios que pueden ser obtenidos desde diferentes hilos de conexión.

No es nada más complicado que crear un archivo batch .bat que dentro de sí mismo tenga llamadas a diferentes archivos .bat con las llamadas a SQLCMD para ejecución de las consultas con las que queremos simular la concurrencia. Para darle mayor tiempo de ejecución, puedes encerrar cada consulta en ciclos while.

Mira cómo hacerlo en el artículo Pruebas de estres en SQL Server con SQLCMD y házlo por ti mismo.

Poner en marcha las alternativas de uso de SQLCMD

Es más sencillo de lo que parece. Finalmente, si quieres ver ejemplos de los casos presentados en este artículo, suscríbete al boletín de noticias semanal y mantente atento a las invitaciones a eventos gratuitos que realizamos periódicamente. En ellos trabajamos con los ejemplos prácticos.

Pablo Javier Fernández

www.datoptim.com
I love working on SQL Server Performance Tuning and finding the origin of the problems. Music and SQL Server passionate.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Close search

Carrito

Volver arriba