Archivo de Octubre de 2013 Desde SQL Server 2005 tenemos la posibilidad de firmar digitalmente nuestros Procedimientos Almacenados utilizando la sentencia ADD SIGNATURE, algo que dicho así parece una chorrada simple e inútil, pero que realmente se presenta como una opción muy interesante, tanto para controlar si nuestro código ha sido alterado (ej: en el caso de los ISV), como para evitar tener que conceder permisos directos sobre las tablas si estamos utilizando Procedimientos Almacenados con código SQL Dinámico (vital, para protegernos de SQL Injection). Hace ya tiempo que hablamos del problema de Parameter Sniffing, la pérdida de rendimiento en la ejecución de Procedimientos Almacenados debido a la reutilización de los Planes de Ejecución, explicando en qué consiste dicho problema así como algunas de las soluciones o Workaround de que disponemos. En esta ocasión, vamos a comentar la cláusula OPTIMIZE FOR UNKNOWN, disponible desde SQL Server 2008, que también nos facilitará la lucha contra el problema del Parameter Sniffing. Recientemente me he encontrado con la necesidad de tener que restringir los resultados de búsqueda que obtienen los usuarios al realizar una búsqueda de personas con People Picker en SharePoint, debido a que un cliente había creado una relación de confianza bidireccional en Directorio Activo con otro Dominio, lo cual estaba generando resultados de búsqueda adicionales, y sobre todo, mucha confusión e incidencias de usuario. Afortunadamente, STSADM está con nosotros para solucionar este tipo de problemas. Aunque quizás no lo realicemos habitualmente, la realidad es que siempre que realicemos un troubleshooting relacionado con problemas de rendimiento de un servidor o aplicación, deberemos acordarnos de asegurarnos que no tenemos ningún problema de rendimiento asociado a la red, del igual modo que solemos hacer con el procesador, disco y memoria. Es presente artículo introduce una de las posibles formas de identificar problemas de rendimiento relacionados con la red, utilizando los contadores de rendimiento más habituales (Bytes Sent/sec, Bytes Received/sec, Packets/sec y Output Queue Length). Continuando con la serie de artículos dedicada a identificar problemas de rendimientos relacionados con cuellos de botella en Windows, en esta ocasión vamos a mostrar un forma de identificar (al menos en algunos casos) situaciones de memoria insuficiente o de presión de memoria en Windows, utilizando los principales Contadores de Rendimiento de utilidad para esta tarea (Available MBytes, %Committed Bytes In Use, Pages/sec). Otro de los problemas de rendimiento en Windows que están dentro del Top-Ten, son sin duda los problemas de rendimiento de procesador o CPU. En el presente artículo mostramos una de las forma de identificar si tenemos un cuello de botella de procesador o CPU en Windows Server, utilizando Contadores de Rendimiento, para de este modo, poder focalizar mejor cómo continuar con nuestro debugging. Una tarea típica que nos tocará realizar en más de una ocasión es lidiar con problemas de rendimiento en Windows, lo que en muchas ocasiones se limita a problemas de rendimiento en el acceso a disco (I/O). El presente artículo describe cómo identificar si tenemos o no un cuello de botella en el acceso a disco, de tal modo que ya sabiéndolo, podamos continuar con nuestro debugging particular, sea una Aplicación Web, de SQL Server, o de lo que fuere. |