viernes, 18 de marzo de 2016

Page Life Expectancy


Incluso una lectura superficial de libros y artículos sobre la supervisión del rendimiento de SQL Server le dirá que la presión de memoria de SQL Server es lo primero que se debe vigilar. No es lo único, ni mucho menos, el CPU, E/S de disco y contadores internos de SQL Server son de importancia crítica para obtener la imagen completa, pero son los contadores de memoria los que a menudo nos muestran las primeras indicaciones de un rendimiento sub-óptimo
La memoria y la forma en que SQL Server la utiliza, está justo en una especie de punto de intersección triple entre la CPU, E/S de disco y  la presión de memoria,  pueden indicar índices que faltan, tablas mal diseñados, falta real de la memoria en el servidor para la carga de trabajo, otras aplicaciones que se ejecutan en el sistema, los usuarios iniciar sesión en el servidor y así sucesivamente. Por el contrario, lo que permite SQL Server para utilizar más memoria puede ayudar a cubrir una gran cantidad de estos y otros temas
Una de las  más importantes medidas  es el PLE (Page Life Expectancy)

Page Life Expectancy

Por mucho, el contador de rendimiento más citado es Page Life Expectancy (también conocido como PLE). Este contador es parte del objeto de administrador de búfer de SQL Server y se define en MSDN como "el número de segundos que una página permanecerá en el grupo de búferes sin referencias." A pesar de que no lo dice en su definición ni en su nombre, este contador en realidad muestra el promedio, no el total o mínimo/máximo, de la vida útil de la página en el grupo de búferes. Por lo que este contador indica cuánto tiempo, en segundos y, en promedio, la página se aloja en el grupo de búferes y cuanto más tiempo una página promedio está viviendo en el grupo de búferes, mayores serán las posibilidades que SQL Server lo encontrará allí cuando lo necesite de nuevo en lugar de tener que leer desde el disco
La relevancia de seguimiento de este contador no debe ser exagerada, un valor bajo indica presión de memoria de SQL Server, ya que conduce necesariamente a más de E/S, que es, por supuesto, el componente más lento en la pila de varios órdenes de magnitud. Por ejemplo, un índice de desaparecidos en una gran tabla (tabla para la que las páginas no caben en la memoria RAM disponible para el grupo de búferes de SQL Server) finalmente conducirá a un análisis completo que desembocará por supuesto a un aumento de la lectura (problema) y la saturación de páginas potencialmente útiles de otras tablas (problema que agrava). Tal acontecimiento sería fácilmente detectable siguiendo el contador PLE con un valor necesariamente bajo.
Varias autoridades en la materia, incluyendo al Cliente de SQL Server Advisory Team (CAT), indican que el valor de este contador debe ser de al menos 300 para aplicaciones OLTP. CAT de SQL Server también indica que los valores para este contador nunca deben bajar rápidamente en un 50% o más
Hoy en día el valor 300 es demasiado pequeño para ser utilizado como un umbral. Se determinó este valor cuando los servidores generalmente tenían instalado 4 GB de RAM. Hoy en día, no es raro que un SQL Servers tengan más de 48 GB de RAM. En lugar del viejo 300 de umbral, una fórmula de adaptación se puede utilizar para obtener una estimación del umbral:
 ((MAXBP(MB)/1024)/4)*300
Donde MAXBP (MB) representa la cantidad máxima de memoria del Buffer Pool.
El contador SQL Server:Buffer Manager:Database Page se puede utilizar para obtener el número de páginas que deben ser convertidos a MB: (páginas * 8) / 1024 y se utiliza como valor MAXBP (MB).

La fórmula anterior considera cada 4 GB de Buffer Pool (por nodo NUMA o de otro tipo) para tener sus propios 300 segundos previstos por PLE.
Además de la fórmula, el valor de referencia se puede determinar al determinar una línea base para la medida de Page Life Expectancy.

Para consultar el valor de este contador ejecute el siguiente:

SELECT [cntr_value] 
FROM sys.dm_os_performance_counters 
WHERE [object_name] LIKE '%Buffer Manager%' 
AND [counter_name] = 'Page life expectancy' 

Traducción de: http://solutioncenter.apexsql.com/top-sql-server-memory-pressure-counters/

domingo, 13 de marzo de 2016

Explicación y Ejemplos de La Instrucción SELECT en SQL Server

Uso de la instruccion SELECT




Uso de la instrucción SELECT como petición de datos, tambien usaremos la instrucción WHERE para filtrar los datos devueltos, usaremos la instruccion like y between.  La base de datos Northwind puede ser descargada de https://northwinddatabase.codeplex.com/ los script de ejemplo son:

--USO DE LA INSTRUCCION SELECT

USE NORTHWIND
GO

SELECT DISTINCT COUNTRY FROM CUSTOMERS --DISTINCT MUESTRA SOLO VALORES UNICOS

--CLAUSULA DE RESTRICCION WHERE

SELECT * FROM CUSTOMERS
WHERE COUNTRY='GERMANY'

SELECT * FROM ORDERS
WHERE --comparadores > < >= <= BETWEEN Ó LIKE
ORDERDATE BETWEEN '1998-01-01' AND '1998-31-12' AND EMPLOYEEID=7

SELECT * FROM CUSTOMERS
WHERE COMPANYNAME LIKE '_e%' -- el simbolo _ sustituye una letra, % varias letras

select * from customers
where companyname like '[AD]%' --todos los que comienzan con A ó con D


select * from customers
where companyname like '[A-D]%' --todos los que comienzan con A, B, C, D

select * from customers
where companyname like '[^A]%' --todos los que no comiencen con la letra A,  [^]no contiene


SELECT * FROM CUSTOMERS
WHERE COUNTRY  NOT IN ( 'BRAZIL','GERMANY','SPAIN')--LOS QUE ESTEN CONTENIDOS

SELECT * FROM CUSTOMERS
WHERE COUNTRY NOT LIKE 'B%'--TODOS LOS QUE NO COMIENCEN CON B, CUIDADO CON LOS ***NOT***

SELECT CUSTOMERID, COMPANYNAME, FAX FROM CUSTOMERS
WHERE FAX IS NOT NULL -- DEVULVAME TODOS LOS REGISTROS DE FAX LLENOS


SELECT CUSTOMERID, COMPANYNAME, FAX FROM CUSTOMERS
WHERE FAX IS  NULL -- DEVULVAME TODOS LOS REGISTROS DE FAX VACIOS

SELECT COUNT(FAX) FROM CUSTOMERS --CUENTA SOLO LOS REGISTROS LLENOS, LOS VALORES VACIOS NO

------EJEMPLO-----------------------------
USE PUBS
SELECT TITLE_ID AS CODIGO,TITLE AS LIBRO,TYPE AS TIPO FROM TITLES -- AS PARA RENOMBRAR
WHERE TYPE='psychology'                          -- UNA COLUMNA  
ORDER BY LIBRO DESC

USE NORTHWIND
SELECT COUNTRY,CUSTOMERID,CONTACTNAME, CONTACTTITLE FROM CUSTOMERS
ORDER BY COUNTRY ASC , CUSTOMERID DESC  -- ORDER BY PARA ORDENAR LA VISTA

SELECT 'NOMBRE COMPAÑIA: '+ COMPANYNAME + ', NOMBRE DEL CONTACTO: '
+ CONTACTNAME AS INFORMACION FROM CUSTOMERS -- MODIFICANDO EL FORMATO AGREGANDO TEXTOS CONCATENADOS

-----------------------
SELECT CUSTOMERS.CUSTOMERID, CONTACTNAME, ORDERID, ORDERDATE
FROM CUSTOMERS INNER JOIN ORDERS
ON CUSTOMERS.CUSTOMERID = ORDERS.CUSTOMERID
ORDER BY ORDERID
------

SELECT
CUSTOMERID
--,COMPANYNAME
,CONTACTNAME
FROM CUSTOMERS



El Equipo del Proyecto

¿Qué hace a su grupo un equipo?

Vea cualquier conjunto de objetivos del proyecto. ¿Sería capaz de llevar a cabo estos objetivos solo?
La mayoría de los proyectos requieren de un equipo multidisciplinario para realizar las tareas necesarias para lograr los objetivos. La construcción de este equipo es uno de los retos más difíciles y más importantes para un director de proyecto. Un equipo de proyecto es más que un grupo de individuos que en conjunto tienen las habilidades necesarias para hacer un proyecto. En un equipo, los individuos deben estar comprometidos a trabajar juntos para alcanzar un objetivo común.
Convertir un grupo en un equipo es un proceso difícil que se inicia con la selección de los miembros del equipo y continúa a través de la vida del proyecto. Un factor complicado para los equipos del proyecto es que los miembros del equipo pueden cambiar en el transcurso de un proyecto.
Durante la etapa de iniciación, se selecciona un equipo central, que colabora con el plan director del proyecto y selecciona los miembros del equipo de implementación que puedan ser necesarios para llevar a cabo la aplicación y fases de cierre del proyecto. El número de miembros del equipo crece durante la fase de implementación y varía duarte el proceso, algunos miembros solo son requeridos para ciertas tareas y otros permanecen durante toda la fase de implementación. Durante la fase de cierre, sólo los miembros del equipo que son responsables de las actividades de entrega permanecen en el equipo de implementación. A lo largo de toda esta actividad, el director del proyecto debe mantener al equipo unificado y centrado en su objetivo

¿De dónde proceden los miembros del equipo central?

En algunos proyectos, el director del proyecto crea el equipo central. Sin embargo, en muchos proyectos, el equipo central es seleccionado por las partes interesadas. El director del proyecto puede ser capaz de añadir algunas personas, pero a menudo es políticamente difícil de eliminar individuos que fueron seleccionados por las partes interesadas. Con frecuencia, los miembros principales del equipo se presentan al gerente del proyecto y no el gerente de proyecto presenta a los miembros principales a las partes interesadas. Los miembros del equipo central pasarán gran porcentaje de su tiempo coordinando diferentes partes del proyecto, pero esto no debe afectar otras tareas de alta prioridad que también deben de hacer, es labor del gerente de proyecto administrar correctamente su recurso humano.

Formar un Equipo

Las claves para la creación de un fuerte equipo de proyecto son:
• Selección de las personas que tienen las habilidades requeridas, actitudes y disponibilidad de tiempo. • Creación de compromiso con el logro de los objetivos del proyecto
• Ayudar a los miembros del equipo para aprender a confiar entre sí y sus capacidades acumuladas para lograr los objetivos del proyecto

Selección de los miembros del equipo

Los objetivos del proyecto necesitan una serie de tareas que se deben alcanzar en el transcurso del proyecto. En un pequeño proyecto, los miembros principales del equipo deben ser elegidos en base a su capacidad para llevar a cabo estas tareas. En un proyecto más grande o más complejo, los principales miembros del equipo deben ser elegidos en base a sus capacidades para gestionar a las personas que pueden realizar estas tareas. Usar una lista de habilidades requeridas para cada tarea ayudara mucho.
Una matriz de habilidades ayudará a seleccionar los miembros principales del equipo, o determinar cuáles son las habilidades de su equipo actual. Más tarde, en la fase de planificación, el equipo central puede crear una Matriz de Habilidades similar para identificar las habilidades necesarias en el equipo de implementación.


Contrato de Equipo

¿Por qué importa un contrato de Equipo?

 Equipos son sólo personas que trabajan juntas. Se eligieron los individuos más cualificados que se puede hallar, personas que pueden ser expertos en sus puestos de trabajo, pero pueden no saber cómo hacer las cosas en un grupo. Usted estará trabajando con estas personas para planificar el proyecto y tomar decisiones, y lo más probable es que haya momentos en los que los miembros del equipo no están de acuerdo entre sí.  Es posible que enfrente problemas como impuntualidad en las reuniones, o miembros que permanezcan en silencio durante la toma de decisiones y luego se nieguen a ir junto con la decisión del grupo.
¿Cómo se puede ayudar al equipo a conseguir productividad, a centrarse en el proyecto, y quitarse de encima toda la minucia interpersonal que pueden distraerlos de su objetivo? La Carta del equipo es un conjunto de reglas que el equipo crea para establecer un estándar de comportamiento interpersonal. Las reglas varían en función de la necesidad, sino que deben incluir normas sobre: ​
         ​Reuniones
         Comportamiento Interpersonal
         Mantenimiento de registros
         Toma de decisiones
         Recursos
         Comunicaciones
La Carta de Equipo es un documento vivo. Puede y debe cambiar a medida que cambian las necesidades del equipo. Dedique tiempo a crear una carta con el Equipo Central y otra vez con el Equipo de Implementación y sub-equipos. Revise la Carta equipo con el equipo o con los individuos cuando surgen problemas interpersonales, o cuando el equipo desea cambiar las reglas del equipo.