1 0 Tag Archives: Bases de Datos
post icon

Optimizar las querys con cláusula LIKE en SQL [SQL-Tunning]

Continuando con los tips para optimizar nuestras querys SQL, trataremos unas de las clásulas que más ralentizan éstas. El operador LIKE.

La definición que exponen en la TechNet me gusta y dice asi:

Determina si una cadena de caracteres específica coincide con un patrón especificado. Un patrón puede contener caracteres normales y caracteres comodín. Durante la operación de búsqueda de coincidencias de patrón, los caracteres normales deben coincidir exactamente con los caracteres especificados en la cadena de caracteres. Sin embargo, los caracteres comodín pueden coincidir con fragmentos arbitrarios de la cadena. La utilización de caracteres comodín hace que el operador LIKE sea más flexible que los operadores de comparación de cadenas = y !=.

Como se tiene que trabajar con cadenas de texto, dentro de otras cadenas más grandes normalmente, es un proceso lento para la comparación. Muchas veces (Continuar Leyendo sobre Optimizar las querys con cláusula LIKE en SQL [SQL-Tunning])

post icon

Tutorial básico para interpretar el plan de ejecución de SQL Server

Para realizar SQL Tunning a nuestras bases de datos, en la mayoría de los casos necesitaremos paciencia y tiempo para analizar con detenimiento como está funcionando todo, así en base a eso, determinar medidas de acción para la optimización.

Para ver el plan de ejecución de un query es muy sencillo en SSMS, podemos ver el Estimado y el Real:

Plan de Ejecución Estimado: Desde el Menú Consultas -> Mostrar Plan de Ejecución Estimado o con la combinación de teclas Ctrl + L. Esto no ejecutará la query sino más bien lo analizará y mostrará una aproximación del costo de su ejecución.

Plan de Ejecución Real: Desde el Menú Consultas -> Incluir Plan (Continuar Leyendo sobre Tutorial básico para interpretar el plan de ejecución de SQL Server)

post icon

Diferencias entre Indices Clustered y Non-Clustered en SQL Server

Si bien este es un tema que todo DBA debe conocer obligatoriamente para poder realizar el tunning de su base de datos quiero usarlo para explicar algunos conceptos básico para los siguientes artículos que estoy preparando sobre optimización del rendimiento de los querys SQL y comprensión de los planes de ejecución.

Lo que veremos aplica a las versiones 2005 y 2008 de SQL Server, aunque una gran parte también para la versión 2000. De hecho que varios de los conceptos también aplica a otros motores del mercado, unos con menos y otros con más opciones de tunning. (Continuar Leyendo sobre Diferencias entre Indices Clustered y Non-Clustered en SQL Server)

post icon

Cual es la diferencia entre un Unique Index y Unique Constraint

Tanto desarrolladores como DBA’s  en algún momento nos llegamos a preguntar cual es la diferencia entre el Unique Constraint y el Unique Index, en gran manera ambos cumplen con la misma función y en la práctica en el 99%  de los casos no habrá diferencia si usamos uno u otro para impedir que se dupliquen valores en una o más columnas que componen al objeto.

De hecho que al crear el Unique Constraint el mismo crea por debajo otro Indice Unico nonclustered automáticamente. (Continuar Leyendo sobre Cual es la diferencia entre un Unique Index y Unique Constraint)

post icon

Reducir el uso de la memoria RAM de SQL Server en caliente sin reiniciar el servicio

Leyendo mis RSS vi un artículo en grimpidev.wordpress.com que me gustó, sobre como liberar el consumo de la memoria RAM que utilizar el servicio de SQL Server.

Si bien es cierto que no es una función diseñada para tal efecto se puede utilizar como artificio para lograr éste objetivo, y me ha parecido muy original la manera que lo desarrollaron. La misma consiste básicamente en establecer el límite máximo a utilizar de RAM por el servicio en un valor bastante bajo obligandole al motor a liberar el recurso, y luego volviendo a establecer en su valor original. Son bien recibidos otros concejos y técnicas en los comentarios. (Continuar Leyendo sobre Reducir el uso de la memoria RAM de SQL Server en caliente sin reiniciar el servicio)

post icon

Como utilizar la cláusula OVER [Partition By / Order by] en SQL [Optimización]

Ver query’s con la cláusula OVER no es muy común, normalmente la mayoría de los programadores o DBA crean sub-query’s para obtener los mismos resultados, lo que en sí no es malo ya que logran visualizar los mismos datos. El problema principal se encuentra en el rendimiento que tiene uno y otro método.

El motor que sea que estés utilizando optimiza el tiempo de ejecución y los bloqueos de las filas cuando se escribe scripts con OVER ya que el mismo trabaja sobre los datos ya obtenidos, en vez de volver a recuperarlos de origen.

La cláusula OVER está definida en el estándar ISO de SQL, (Continuar Leyendo sobre Como utilizar la cláusula OVER [Partition By / Order by] en SQL [Optimización])

post icon

Configurar el Cliente-SDK de Informix en Windows

Si tienen como back-end en su sistema el motor de IBM, Informix y desarrollarán el front-end con cualquier lenguaje en el sistema operativo (Windows, Linux, Solaris, HP-UX, etc) necesitarán configurar manualmente en cada uno de ellos el Cliente-SDK.

En ésta ocasión veremos como hacerlo sobre MS Windows, no es una tarea difícil para nada pero no tan sencillo como se hace con MSSQL, PostgreSQL, etc. Los que llegaron a trabajar con conexiones ODBC en algún momento verán cierta similitud. (Continuar Leyendo sobre Configurar el Cliente-SDK de Informix en Windows)

post icon

Como saber cuando fue el último acceso a una Base de Datos SQL Server

Conocer cuando fue la ultima vez que se accedió a una base de datos en SQL Server no es una tarea fácil de resolver, ya que no hay un valor que sirva específicamente para eso, si es que no llevamos un sistema de auditoría a la par.

Otra manera es ver el registro del transaction log de la base de datos, aunque la misma es muy dificil de interpretar, a parte que son funciones de SQL Server no documentadas por Microsoft y para peor de todo están almacenadas en un formato propietario. (Continuar Leyendo sobre Como saber cuando fue el último acceso a una Base de Datos SQL Server)

post icon

Como depurar en SQL Server 2008 paso a paso: Procedimientos almacenados, triggers y funciones

En el articulo anterior veiamos un mini-tutorial de como depurar en SQL Server 2005. Ahora veremos como hacerlo con SQL Server 2008. Aunque es posible hacerlo del mismo modo, con Visual Studio. La nueva versión nos permite ya depurar desde el SQL Server Management Studio directamente (una caracteristica más que útil y que implorabamos hace años).

La primer diferencia es más que reconocible, ya que se agrega un nuevo menú dentro del SSMS como ven aquí: (Continuar Leyendo sobre Como depurar en SQL Server 2008 paso a paso: Procedimientos almacenados, triggers y funciones)

post icon

Como depurar en SQL Server 2005 paso a paso: Procedimientos almacenados, triggers y funciones

Para todo programador es un paso vital conocer como depurar su software, para la gente que desarrolla con herramientas de Microsoft ésta tarea es bastante sencilla la mayoría de las veces. Especialmente si se trata de depurar las aplicaciones construidas con Visual Studio.

El mayor de los problemas surge cuando hay que depurar objetos de la base de datos, especificamente SQL Server. Para los que en algún momento llegamos a utilizar la versión 2000, el mismo traía un depurador en el Analizador de Querys. Aunque un poco rustico, lo tenía. Cuando salío la versión 2005 del motor, ésta opción fue sacada del producto (Continuar Leyendo sobre Como depurar en SQL Server 2005 paso a paso: Procedimientos almacenados, triggers y funciones)