lunes, 17 de diciembre de 2012

Articulo publicado en la revista DotNetMania nº98

Ya puedes leerme en el número de diciembre de 2012 de la revista DotNetMania http://www.dotnetmania.com/ 

En una serie de 4 artículos, hablaré junto a mi compañero Enrique Puig sobre “Buenas prácticas de codificación para capas de acceso a datos de aplicaciones”. En esa serie de 4 artículos vamos a desmenuzar las distintas posibilidades que tenemos a la hora de enfrentarnos al desarrollo de capas de acceso a datos.

Hablaremos a grandes rasgos de: 

  • Patrones de acceso a datos
    • Tipología de acceso
    • Patrones de bajo nivel
  • ORM
    • Motivación de los ORM
    • Pros y contras de los ORM
  • Entity framework
    • Entity Data Model
    • Operaciones con Entity Framework
    • Comparativa de rendimientos

No te lo pierdas! suscribete a http://www.dotnetmania.com/ para poder disfrutarlos.

viernes, 7 de diciembre de 2012

Monitorizando y optimizando problemas de paralelismo en SQL Server

He dejado en mi site público las diapositivas de mi sesión para las 24 horas de PASS libres para descarga. Aqui tienes las diapositivas para descarga: http://sdrv.ms/VrW1qh 

Te recuerdo que tengo compartidas la mayoría de mis sesiones públicas listas para descarga aqui: http://sdrv.ms/M4iPsr

martes, 4 de diciembre de 2012

24 Horas PASS en ESPAÑOL

Durante los próximos días 5 y 6 de Diciembre, se celebrará un nuevo “24 horas de PASS” en Español, reuniendo a los mejores profesionales de SQL Server. Además, se dispondrá de la colaboración de ponentes de diferentes países de habla Hispana, como Argentina, Chile, Colombia, Costa Rica, España, Guatemala, México, Perú, Puerto Rico, Venezuela y los hispanos residentes en los Estados Unidos.

Me honro de repetir como ponente en dicho evento junto a otros grandes profesionales.

Aqui teneis la lista de ponentes: link

Aqui teneis la lista de sesiones: link

En mi sesión vamos a dar un repaso interesante sobre el paralelismo en SQL Server. Tema más que recurrente en la mayoria de mis intervenciones y a la vez tan desconocido para la mayoría. Será el próximo jueves dia 6 de Diciembre a las 14h UTC-6 ( 9am hora de españa )

Para registrarse, puedes entrar aqui https://www323.livemeeting.com/lrs/8000181573/Registration.aspx?pageName=cs245phxcq7r4bvl

miércoles, 16 de mayo de 2012

Convertir traza SQL Profiler a Extended Events

Con la llegada de SQL Server 2008 se introdujo la tecnología de eventos extendidos, que se dijo en aquel momento iba a reemplazar en un futuro a nuestro querido SQL Profiler. Una de las principales pegas por las que personalmente he visto poca aplicación de dicha tecnología ha sido el hecho de que no disponía de una interfaz gráfica con la que trabajar y que por tanto te obligaba a escribir T-SQL ya no solo para crear dichas trazas, sino para poder analizar los resultados.

¿Qué es Extended events?

Los eventos extendidos son un sistema de captura de eventos de caracter general. Las ventajas de este sistema son que se trata de un sistema de captura extremadamente ligero, que permite la correlación con múltiples sistemas de logs de aplicación y del propio log del sistema operativo, así como la posibilidad de trabajar con múltiples destinos, entre los que se encuentran: destinos a disco y a memoria RAM, conteo simple de eventos,…y todo ello con la posibilidad de que sea en paralelo (varios destinos simultáneamente). Además, una de las características que todavía lo hacen mas interesante es que podemos llegar a definir eventos de bajo nivel, llegando al punto de poder crear una traza a nivel de PAGE_SPLIT (esto es, cuando una página de 8k de SQL Server debe ser dividida para insertarle información); esto, unido a que en SQL Server 2012 tenemos más de 700 eventos disponibles, convierte a los extended events en el paso lógico de trazabilidad para SQL Server.

¿Qué mejoras trae Extended Events en SQL Server 2012?

SQL Server 2012 trae muchas novedades relativas a Extended Events, que incluso han producido que SQL Profiler ya esté oficialmente marcado como deprecated. Algunas de las mejoras que se incorporan en SQL Server 2012 son:

Continua leyendo aquí.

jueves, 3 de mayo de 2012

Beneficios de Soft-NUMA: Cuidado con lo que lees

SQL Server es una aplicación con soporte NUMA. Esto quiere decir, que será capaz de explotar correctamente hardware diseñado con arquitectura NUMA. Además de esto, nos permite su configuración por software con el fin de obtener algun rendimiento extra como ahora veremos.

¿Qué es NUMA?

NUMA= Non Uniform Memory Access

Una arquitectura NUMA vendrá dada por una serie de nodos, cada uno de los cuales tiene su propia circuiteria de CPU y memoria local y que están interconectados mediante un bus (sea token ring, shared bus,…lo que sea…pero están interconectados).

Se corresponderia con el siguiente diagrama:

image

En este post no vamos a entrar en detalles sobre beneficios de hardware NUMA, sino que nos vamos a centrar en Soft-NUMA.

¿Qué es Soft-NUMA?

Soft-NUMA es la forma que tenemos en SQL Server de “simular” o “engañar” a nuestras instancias SQL Server de que tenemos una composición NUMA como la anteriormente citada.

Continuar leyendo

miércoles, 25 de enero de 2012

Linked servers: optimización

Los servidores vinculados ó linked servers en SQL Server son una característica bastante utilizada en la mayoría de entornos actualmente.

El siguiente texto forma parte de la documentación oficial hablando de linked servers :

"To create the best query plans when you are using a table on a linked server, the query processor must have data distribution statistics from the linked server.Users that have limited permissions on any columns of the table might not have sufficient permissions to obtain all the useful statistics, and might receive a less efficient query plan and experience poor performance. If the linked server is an instance of SQL Server, to obtain all available statistics, the user must own the table or be a member of the sysadmin fixed server role, the db_owner fixed database role, or the db_ddladmin fixed database role on the linked server"

Y aquí por tanto nos está diciendo que debemos cumplir una premisa relativa a la seguridad del servidor vinculado. En el siguiente punto veremos qué implicaciones tiene el enunciado anterior.

¿Qué debemos tener en cuenta al utilizar un servidor vinculado?

Lo que debemos tener muy presente a la hora de utilizar un servidor vinculado es que si no cumplimos el requisito anterior, los valores de las estadísticas que se utilizan para generar el plan de ejecución que SQL Server genera son incorrectos y terminan produciendo un grave problema de rendimiento “desapercibido”.

La razón es ni mas ni menos, que se necesitan permisos sysadmin, db_owner o db_ddadmin del login remoto que se usa para logearse en el servidor remoto. De lo contrario, no se tienen permisos suficientes para poder acceder a las estadísticas de los objetos remotos y por tanto el plan de ejecución será generado con información incorrecta y potencialmente se generará ineficientemente.

El siguiente ejemplo ilustra bastante bien el problema y su solución

….

Si deseas leer más, accede al post original que se encuentra aquí:

http://blogs.solidq.com/ElRinconDelDBA/Post.aspx?ID=212&title=linked+servers%3a+optimizaci%c3%b3n