Entradas

Mostrando entradas de abril, 2014

Eliminando directorios con LFTP

Imagen
Continuando el manual de opciones del LFTP os dejo la sintaxis completa para eliminar directorios de manera recursiva incluyendo archivos ocultos . La sintaxis para eliminar directorios de manera recursiva es: rm –r /directorio/directorio/directorio_a_borrar Pero si el directorio a borrar tuviese archivos ocultos tendríamos un error del tipo: rm: Access failed: 550 dirname: Directory not empty , por ello debemos incluir set ftp:list-options –a. Uniéndolo todo sería: lftp -c open ftp://user:passwd@host -e "set ftp:list-options -a; rm -r /directorio/directorio/directorio_a_borrar" & El símbolo final es para ejecutar el comando en segundo plano. Es totalmente opcional.

PsExec y SQL Server

Microsoft tiene un kit de recursos con varias herramientas para la línea de comandos que permiten realizar administrar sistemas remotos y locales . Este grupo de herramientas es conocido como PsTools y entre ella está Psexec , una herramienta para la línea de comandos que permite ejecutar procesos en equipos remotos. ¿Como ejecutar psexec en un trigger de SQL Server? En realidad esto es válido para cualquier aplicación local. SET @cadena='C:\ruta_completa\psexec.exe \\ip_remota\  -d "C:\ruta_archivo_bat.bat" var1±'+@var1+'~var2±'+@var2+', NO_OUTPUT' Con el comando anterior especificamos la ruta del archivo local ejecutable y la el proceso bat que queremos ejecutar en remoto, las variables 1 y 2 son opcionales en caso de que vuestro proceso bat las necesite. Con el siguiente comando ejecutamos la instrucción almacenada en la variable anterior exec master..xp_cmdshell @cadena Recordar que el usuario que ejecuta los procesos de SQL Server debe de

Valores por defecto en JavaScript

Quisiera compartir con vosotros este maravilloso post con varias opciones para pasar valores por defecto en funciones JavaScript .

Optimizando consultas en SQL Server

Imagen
SQL Server Managment Studio es, y no me cansaré de decirlo, la mejor herramienta para gestión de bases de datos que existe, si MySQL tuviese algo similar sería genial. Una de las cosas que podemos hacer con SQL Server Managment Studio es optimizar y analizar nuestros índices. Como diría el mismo Microsoft: SQL Server Management Studio es una herramienta gráfica interactiva que permite a un administrador o a un programador de bases de datos escribir consultas, ejecutar simultáneamente varias consultas, ver los resultados, analizar el plan de consultas y recibir asistencia para mejorar el rendimiento de las consultas. Optimizando consultas en SQL Server Una de las opciones en SQL Server es ejecutar una consulta y ver su plan de ejecución ¿Qué es un plan de ejecución? Las opciones del Plan de ejecución muestran gráficamente los métodos de recuperación de datos elegidos por el optimizador de consultas de SQL Server . El plan de ejecución gráfico utiliza iconos para r

Rellenar SELECT con AJAX y jQuery

Uno de los usos más básicos con AJAX es rellenar combos (SELECT). Pero no por básico dejar de ser a veces complicado. Lo primero que debemos saber es que las funciones AJAX de jQuery utilizan la codificación UTF-8 tanto para recibir como para enviar datos. Existen mil maneras de pasar los datos con AJAX aunque las más lógicas serían las que utilizan formatos unificados para el tráfico de datos como son XML y JSON. Particularmente a mi me gusta mucho más utilizar JSON pero en Chrome si creamos un objeto JSON a partir de un array numerado el objeto resultante se ordena obviando el orden que se le haya dado previamente . Rellenando un SELECT con XML Lo primero que haremos será construir un objeto XML codificado en UTF-8 para ello podemos ayudarnos de funciones como utf8_encode en caso de que los valores vengan codificados en ISO. Aquí es dejo un ejemplo de un XML $xml = new XmlWriter(); $xml->openMemory(); $xml->startDocument('1.0', 'UTF-8'); $xml-&g

Optimizando consultas en MySQL

Imagen
Hay un artículo muy bueno con 20 consejos para mejorar MySQL que recomiendo a todos leer antes de seguir con este post porque básicamente lo que haré será ampliar o rebatir alguno de los puntos del mismo. El primer punto que me gustaría modificar es el 5, indexar los campos para utilizarlos con consultas que utilicen JOIN. Básicamente lo que dice este punto es que los campos de unión entre tablas deben ser del mismo tipo y estar indexados, yo a eso añadiría que ambas tablas deben ser del tipo Innodb y ambos campos tener una relación entre ellos con una Foreign Key , así no solo garantizamos las premisas anteriores sino que se asegura la integridad de los datos en ambas tablas. Lo ideal para hacer uniones entre tablas es que uno de los campos sea una clave primaria y el otro una clave foránea que apunte a ella. En el punto 16, particionamiento vertical, no estoy del todo de acuerdo, partir una tabla por partirla y creer que esto mejorará el rendimiento porque tiene menos datos o men