Thursday, April 30, 2009

Paquete de Integration Services en x64

Si ejecutan en x64 y reciben este error

The 'Microsoft.ACE.OLEDB.12.0' provider is not registered error

Para solucionar este error lo que tienen que hacer es lo siguiente

-Abren el paquete en BIDS (Business Intelligence Developement Studio)

-Hacen click en el Configuration Manager

-En la opción Active Solution Platform eligen New

-En tipo de plataforma eligen x86

-Cuando compilan asegúrense de que están escogiendo x86

 

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

Technorati Tags: SQL Server

LiveJournal Tags: SQL Server

del.icio.us Tags: SQL Server

Cómo transferir una BD en SQL 2008 hacia SQL 2005

Si se desea transferir una base de datos que está en SQL Server 2008 hacia SQL Server 2005 no existe una forma fácil y natural de hacerlo, por ejemplo no se puede restaurar un respaldo de SQL 2008 en SQL 2005. La opción que podemos seguir es la que sugiere Chris Goddard. La idea de Chris consiste en utilizar el Managemente Studio, en esta herramienta se elige el Wizard de Generación de Scripts y se le indica la versión de SQL Server 2005 y que incluya los datos. Puede ver los detalles en esta dirección http://www.devx.com/dbzone/Article/40531

image

image

 image

 image

 image

 image

Se debe tener cuidado con esta opción ya que si la BD tiene muchos datos se va requerir mucho espacio, si los datos son sensitivos hay que tomar en cuenta que estos no están encriptados.

En el script generado se debe comentar la siguiente línea:


--EXEC sys.sp_db_vardecimal_storage_format N'Northwind', N'ON'
--GO

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

Technorati Tags: SQL Server

LiveJournal Tags: SQL Server

del.icio.us Tags: SQL Server

Wednesday, April 29, 2009

SQL Server Working Set Trim Problems

En un artículo anterior se mención los problemas de rendimiento que se pueden presentar en SQL Server debido al manejo de memoria, o más bien cuando el sistema operativo no le asigna toda la memoria a SQL Server, para resolver estos problemas el CSS Team tiene una serie de reocmendaciones que incluyo a continuación:

Windows 2003

We can use a combination of memory sizing and locked pages to avoid the issue in the vast majority of cases.   What you want to do is monitor your memory counter a peak load.    Doing this with locked pages disabled will let you see all the counters in one place.   Using the values captured you can establish the max and min server memory settings of SQL Server to accommodate the peak work load.   Once you have these targets you can enabled locked pages again.

Take for example a 64GB machine and when run peak load the OS and other applications require 10GB.   You might configures SQL Server max server memory around 53GB (bit of overhead for thread stacks and memory outside buffer pool) to achieve steady server performance.

Windows 2008

Windows 2008 updated the working set policy decisions and avoids many of the significant working set trim.  These changes are designed to avoid significant trims and steady the performance of the server.   This allows SQL Server to adjust to memory notifications and avoid being pages.   Testing has shown that prior to these changes the SQL Server working set could be significantly trimmed.  After the changes the system maintains better working set balance and no longer trims the SQL Server working set aggressively.   Instead the memory notifications that SQL Server listens to can be fired and SQL Server will back-off when required.

The example used if peak memory requires 10GB but common load only 4GB you can keep max memory around 59GB and only when peak load on the system is occurring will SQL Server back off to accommodate the load.

Min Server Memory

Use the min server memory setting with care.   This is a floor to SQL Server.   Once committed memory to reach the min server memory setting SQL Server won't release memory below the mark.   If you set max server memory to 59GB and min server memory to 56GB, but the server needs to back SQL Server down to 53GB SQL Server won't drop below 56GB.    When you combine this setting with locked pages in memory the memory can't be paged.  This can lead to unwanted performance behaviors and allocation failures.

http://blogs.msdn.com/psssql/archive/2008/03/03/sql-server-working-set-trim-problems-consider.aspx

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

Technorati Tags: SQL Server

LiveJournal Tags: SQL Server

del.icio.us Tags: SQL Server

SQL Server y Locked Pages

Microsoft ha anunciado que la versión estándar de SQL Server va a soportar Locked Pages http://blogs.msdn.com/psssql/archive/2009/04/24/sql-server-locked-pages-and-standard-sku.aspx

Esta es una característica muy útil que estaba únicamente presente en la versión Enterprise, cuando se presentan problemas de rendimiento relacionados con el uso de memoria y la paginación. En inglés este problemas es conocido como "working set trim problems" unas formas de evitar este problema las pueden consultar en la siguiente dirección http://blogs.msdn.com/psssql/archive/2008/03/03/sql-server-working-set-trim-problems-consider.aspx

 

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

Technorati Tags: SQL Server

LiveJournal Tags: SQL Server

del.icio.us Tags: SQL Server

Saturday, April 25, 2009

Evento Windows Vista Adoption Day

Registrate en http://windowsvistaadoptionday.eventbrite.com/

Deseamos invitarlo a la sesión que tendremos sobre Windows Vista este mes de mayo.

En esta sesión veremos informacion acerca de las ventajas de Windows Vista desde la perspectiva de administración de TI.

Al final de la actividad entre los presentes se rifarán los siguientes premios: una notebook Toshiba con capacidad hasta 4GB de RAM, doble procesador, DVD writer, multilector de tarjeta, wireless.  Además un disco duro externo de 500GB, una impresora multifuncional EPSON (impresora, fax, fotocopiadora y escaner), licencias de Windows y más.

Cada asistente recibirá un DVD de la Comunidad Windows con recursos útiles en la administración de la infraestructura de TI.

El evento tiene un costo de $20, sin embargo hemos llegado a un acuerdo con los patrocinadores y contamos con una cantidad limitada de cupones de descuento para aquellas personas registradas como miembros de la comunidad, el cupón de descuento es de un 100%. Para obtener ese cupón de descuento deben enviar sus datos de miembro a la siguiente cuenta de correo eventos@mswindowscr.org.

Si no eres miembro puedes registrarte de forma gratuita en la siguiente dirección http://comunidadwindows.org/user/CreateUser.aspx?ReturnUrl=

El detalle de la invitación lo encontrarás a continuación.

Te invita,

Comunidad Windows

http://windowsvistaadoptionday.eventbrite.com/

Windows Windows Vista representa una mejora importante para los profesionales de TI que administran un entorno de equipos de escritorio, en esta sesión veremos información acerca de las ventajas de Windows Vista desde la perspectiva de administración de TI

  • Cómo y por qué cambiar a Windows Vista
  • Productividad y Administración de Windows Vista
  • Cómo Windows Vista aporta más control para mantener en funcionamiento equipos de escritorio
  • Implementación avanzada
  • Mejoras en SP1

Al final de la actividad entre los presentes se rifarán los siguientes premios: una notebook con Windows Vista, un disco duro externo, una impresora multifuncional EPSON, licencias de Windows y más.

Fecha:
14 de mayo del 2009

Hora:
8:00 a.m. - 12:30 p.m.

Lugar:
CinemarkMultiplaza del Este

Dirección:

Multiplaza del Este, Zapote

Información:
eventos@mswindowscr.org

Reserve su espacio a tiempo.
Cupo limitado.

Friday, April 24, 2009

Cómo listar los trabajos (jobs) fallidos en SQL Server

Muchas veces es necesario determinar cuáles han sido los jobs cuya ejecución ha fallado en SQL Server, para hacer esto se pueden utilizar los scripts creados por Drew Salem, los cuales incluyo a continuación:

 

USE 

[DBA_Admin]

GO
/******

Part 3a: The Failed Jobs Report

Object Creation: Table Failed_Jobs

Purpose: To create the table Failed_Jobs

Date: 01/02/2009

Author: Drew Salem - www.thebuddingdba.com

For: SQLServerCentral.com

******/
CREATE TABLE [dbo].[Failed_Jobs]

(

[originating_server] [varchar](255) NULL,

[job_name] [varchar](255) NULL,

[job_description] [varchar](1023) NULL,

[last_outcome_message] [varchar](255) NULL,

[last_run_date] [varchar](63) NULL,

[job_id] [varchar](255) NULL

)




Después de creada esa tabla se debe crear  el procedimiento almancenado para llenar la tabla anterior:




USE [DBA_Admin]
GO
/******

Part 3a: The Failed Jobs Report

Object Creation: The usp_GetFailedJob stored procedure

Purpose: To retrieve failed jobs data from a single server

Date: 08/02/2009

Author: Drew Salem - www.thebuddingdba.com

For: SQLServerCentral.com
******/
CREATE PROC [dbo].[usp_GetFailedJob]

@servername SYSNAME
AS
SET NOCOUNT ON
DECLARE @sql1 VARCHAR (8000)
DECLARE @version VARCHAR (50)
--First check which version of SQL Server is running.

SELECT @version = serverversion

FROM Server_SQL_Details

WHERE servername = @servername
--If it's 2000 then execute this code
IF @version = '
8'

BEGIN

SELECT @sql1 = '


Select j.originating_server,

j.name, j.description, jh.last_outcome_message, substring(space(1),

33,33) +
-- Calculate and format fail datetime

-- Add Run Duration Seconds

cast(

-- Add Start Time Seconds

dateadd(ss, cast(substring(cast(last_run_time + 1000000 as char(7)),6,2) as int),
-- Add Start Time Minutes

dateadd(mi, cast(substring(cast(last_run_time + 1000000 as char(7)),4,2) as int),
-- Add Start Time Hours

dateadd(hh, cast(substring(cast(last_run_time + 1000000 as char(7)),2,2) as int),
convert(datetime,cast (last_run_date as char(8)))))) as char(19)) As Last_Run_Date, j.job_id
FROM [' + @servername + '].msdb.dbo.sysjobservers

jh join [' + @servername + '].msdb.dbo.sysjobs j ON jh.job_id=j.job_id

where last_run_outcome <> 1'
--Insert into a temp table before it gets its knickers in a twist

CREATE TABLE #t2 (

originating_server VARCHAR(255),

job_name VARCHAR(255),

job_desc VARCHAR(1023),

last_outcome_message VARCHAR(255),

last_run_date VARCHAR(63),

job_id VARCHAR(255))
INSERT INTO #t2 EXEC(@sql1)
--And insert the relevant info into our Failed Jobs table

INSERT INTO Failed_Jobs

(originating_Server, job_name, job_description, last_outcome_message, last_run_date, job_id)

SELECT originating_server, job_name, job_desc, last_outcome_message, last_run_date, job_id

FROM #t2
DROP TABLE #t2
END
ELSE
--If it'
s 2005 then execute this code

IF @version = '9'

BEGIN

SELECT @sql1 = '

Select id.originating_server,

j.name, j.description, jh.last_outcome_message, substring(space(1),

33,33) +

-- Calculate fail datetime

-- Add Run Duration Seconds

cast(

-- Add Start Time Seconds

dateadd(ss, cast(substring(cast(last_run_time + 1000000 as char(7)),6,2) as int),

-- Add Start Time Minutes

dateadd(mi, cast(substring(cast(last_run_time + 1000000 as char(7)),4,2) as int),

-- Add Start Time Hours

dateadd(hh, cast(substring(cast(last_run_time + 1000000 as char(7)),2,2) as int),

convert(datetime,cast (last_run_date as char(8)))))) as char(19)) As Last_Run_Date, j.job_id

FROM ['
+ @servername + '].msdb.dbo.sysjobservers

jh join ['
+ @servername + '].msdb.dbo.sysjobs j ON jh.job_id=j.job_id

join ['
+ @servername + '].msdb.dbo.sysoriginatingservers_view id

ON id.originating_server_id=j.originating_server_id

where last_run_outcome <> 1'


CREATE TABLE #t3 (

originating_server VARCHAR(255),

job_name VARCHAR (255),

job_desc VARCHAR (1023),

last_outcome_message VARCHAR (255),

last_run_date VARCHAR(63),

job_id VARCHAR (255))

INSERT INTO #t3 EXEC(@sql1)

INSERT INTO Failed_Jobs

(originating_Server, job_name, job_description, last_outcome_message, last_run_date, job_id)

SELECT originating_server, job_name, job_desc, last_outcome_message, last_run_date, job_id

FROM #t3

DROP TABLE #t3

END



Saludos,



Eduardo Castro – Microsoft SQL Server



http://comunidadwindows.org



Costa Rica



Technorati Tags: SQL Server



LiveJournal Tags: SQL Server



del.icio.us Tags: SQL Server

Thursday, April 23, 2009

Error en Reporting Server en SQL Server 2008

Cuando se configurar Reporting Services un website que no es default, o sea diferente al 80. Se puede presentar el siguiente error:

 

"An error occurred while parsing the configuration file. The ReportServerVirtualDirectory element is missing. "

 

Para resolverlo tienes que abrir el archivo de configuración RSWebApplication.config el cual se encuentra en el directorio virtual de Reports o en la siguiente ruta C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportManager. Tienes que buscar la siguiente entrada.

 

<UI>
<ReportServerUrl></ReportServerUrl>
<ReportServerVirtualDirectory></ReportServerVirtualDirectory>
<ReportBuilderTrustLevel>FullTrust</ReportBuilderTrustLevel>
</UI>




En la entrada ReportServerVirtualDirectory debes agregar el nombre del 


directorio virtual del report server.


 



<UI>
<ReportServerUrl></ReportServerUrl>
<ReportServerVirtualDirectory>ReportServer</ReportServerVirtualDirectory>
<ReportBuilderTrustLevel>FullTrust</ReportBuilderTrustLevel>
</UI>




Saludos,



Eduardo Castro – Microsoft SQL Server



http://comunidadwindows.org



Costa Rica



Technorati Tags: SQL Server



LiveJournal Tags: SQL Server



del.icio.us Tags: SQL Server

Tuesday, April 21, 2009

Consideraciones de SQL Server para instalar DPM 2007

Si se desea instalar el Data Protection Manager 2007 utilizando un repositorio remoto es necesario ejecutar el siguiente utilitario, de lo contrario la instalación podría generar errores.

sqlprep.msi

Este archivo lo pueden encontrar en el DVD de instalación del DPM en el directorio \DPM2007\MSI

 

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

Technorati Tags: SQL Server

LiveJournal Tags: SQL Server

del.icio.us Tags: SQL Server

Consideraciones de SQL Server para instalar DPM 2007

Si se desea instalar el Data Protection Manager 2007 utilizando un repositorio remoto es necesario ejecutar el siguiente utilitario, de lo contrario la instalación podría generar errores.

sqlprep.msi

Este archivo lo pueden encontrar en el DVD de instalación del DPM en el directorio \DPM2007\MSI

 

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

Technorati Tags: SQL Server

LiveJournal Tags: SQL Server

del.icio.us Tags: SQL Server

Monday, April 20, 2009

Monitorear el desempeño de SQL Server - 03

La optimización de las consultas puede influir en el desempeño del servidor, debido a que esta tarea consume mucho CPU, con el siguiente script se puede tener una idea global sobre cómo la optimización de consultas influye en el uso de CPU.

 

select *     
from sys.dm_exec_query_optimizer_info
 
Más información en http://www.microsoft.com/technet/prodtechnol/sql/2005/tsprfprb.mspx

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

Technorati Tags: SQL Server

LiveJournal Tags: SQL Server

del.icio.us Tags: SQL Server


Monitorear el desempeño de SQL Server - 02

Con el siguiente query se puede determinar los batches en cache o procedimientos que están utilizando más CPU. El estatuto agrega todos las consultas que estpa en el mismo plan_handle.

select top 50
sum(qs.total_worker_time) as total_cpu_time,
sum(qs.execution_count) as total_execution_count,
count(*) as number_of_statements,qs.plan_handle
from
sys.dm_exec_query_stats qs
group by qs.plan_handle
order by sum(qs.total_worker_time) desc



Más información en 


http://www.microsoft.com/technet/prodtechnol/sql/2005/tsprfprb.mspx



 


Saludos,



Eduardo Castro – Microsoft SQL Server



http://comunidadwindows.org



Costa Rica



Technorati Tags: SQL Server



LiveJournal Tags: SQL Server



del.icio.us Tags: SQL Server


Monitorear el Desempeño de SQL Server - 01

Con el siguiente query se puede determinar si existen tareas que están esperando por CPU para ser ejecutadas, un número alto de runnable tasks es alto indica un cuello de botella en el CPU y debe ser investigado.

select scheduler_id,current_tasks_count,runnable_tasks_count 
from sys.dm_os_schedulers
where scheduler_id < 255
Más información en 

http://www.microsoft.com/technet/prodtechnol/sql/2005/tsprfprb.mspx

 

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

Technorati Tags: SQL Server

LiveJournal Tags: SQL Server

del.icio.us Tags: SQL Server


Aspectos clave para determinar problemas de desempeño en SQL Server

Cuando se está tratando de mejorar el desempeño de una consulta en SQL Server se deben analizar los siguientes aspectos:

 

- Elementos que son accedidos por la consulta, entre ellos: objectos accesados (tablas, columnas), bloqueos que se presentan durante la ejecución. Por ejemplo, las transacciones provocan que se bloqueen recursos tales como tablas.

 

- Tiempo de ejecución de las consultas, por ejemplo si la consulta dura mucho entonces es posible que genere más bloqueos, los cuales generan problemas de concurrencia.

 

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

Technorati Tags: SQL Server

LiveJournal Tags: SQL Server

del.icio.us Tags: SQL Server

Desempeño en SQL 2008: herramientas disponibles

Muchas veces se deben elegir las herramientas adecuadas para monitorear el desempeño de SQL Server, entre ellas existen algunas de Windows y otras propias de SQL Server. Por ejemplo, el plan de ejecución sirve para determinar el uso de los índices en una consulta en particular. Sin embargo, es necesario utilizar otras herramientas de monitoreo con el fin de determinar el problema de desempeño, entre esas herramientas están: SQL Server Profiler, Performance Monitor y el Activity Monitor.

Un heurístico para la selección de la herramienta son las siguientes:

- SQL Server Profiler, se utiliza para monitorear y solucionar problemas relacionados con Transact-SQL y aquellos relacionados con las aplicaciones.

- El Performance Monitor ayuda a determinar problemas de desempeño de hardware

- El Activity Monitor son útiles para obtener información sobre las conexiones de los usuarios en el servidor y los bloqueos existentes.

 

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

Technorati Tags: SQL Server

LiveJournal Tags: SQL Server

del.icio.us Tags: SQL Server

Friday, April 17, 2009

El futuro de SQL Server

 

Dentro de los planes futuros de SQL Server se perfila lo siguiente:

 

  • Kilimanjaro, programado para la segunda mitad del 2010, proveerá nuevas herramientas de BI en SQL basado en un servicio autoadministrado de inteligencia de negocios.
  • Madison, que saldrá al mismo tiempo que Kilimanjaro. Integra la tecnología de Data Allegro dentro de SQL para lograr alta escalabilidad en los data warehouses.
  • SQL Server Services, son el pilar de la Azure Platform de cloud computing.

 

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

Technorati Tags: SQL Server

LiveJournal Tags: SQL Server

del.icio.us Tags: SQL Server

SQL Server Consolidation at Microsoft

Hace poco Microsoft publicó un excelente artículo sobre las técnicas de consolidación de SQL Server aplicadas en Microsost, pueden bajar ese documento en esta dirección http://download.microsoft.com/download/3/0/6/3068EC2F-FA39-4879-BD50-6F67843BFC92/SQLServerConsolidationTWP.doc

La presentación PPT y webcast puede ser accedidos en esta otra dirección http://technet.microsoft.com/en-us/library/dd557540.aspx

En este paper se presenta el SQL Utility utilizado por Microsoft para proveer instancias de SQL Server utilizando virtualización con Hyper-V con el fin de utilizar mejor los recursos. Tal y como se muestra en la siguiente imagen.

image

 

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

Technorati Tags: SQL Server

LiveJournal Tags: SQL Server

del.icio.us Tags: SQL Server

Error instalando SQL Server 2008 SP1

Cuando se instala SQL Server 2008 SP1 en una máquina que tiene instalado Visual Studio 2008, se puede presentar el siguiente problema:

 

Rule "Previous releases of Microsoft Visual Studio 2008" failed.
A previous release of Microsoft Visual Studio 2008 is installed on this computer. Upgrade Microsoft Visual Studio 2008 to the SP1 before installing SQL Server 2008.

 

Esto se debe a ciertas incompatibilidades que existen entre los productos, para arreglarlo hay que desintalar cualquier versión de SQL Server que se tenga instalado, instalar el SP1 de VS2008 y volver a instalar SQL Server. Para mayores detalles y escenarios pueden consultar el siguiente artículo http://support.microsoft.com/kb/956139

 

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

Technorati Tags: SQL Server

LiveJournal Tags: SQL Server

del.icio.us Tags: SQL Server

SQL Server 2008 SP1

El primer service pack para SQL 2008 ya está disponible, puedes bajarlo desde la siguiente dirección:  http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=66ab3dbb-bf3e-4f46-9559-ccc6a4f9dc19

Este service pack contiene los Roll-up of Cumulative Update 1 al 3, los Quick Fix Engineering (QFE) updates y demás errores reportados, también brinda las siguientes ventajas:

- Se puede realizar slipstream, para detalles ver http://blogs.msdn.com/petersad/archive/2009/02/25/sql-server-2008-creating-a-merged-slisptream-drop.aspx

- Permite desinstalar el SP sin necesidad de desinstalar la instancia completa.

 

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

 

Technorati Tags:

 

LiveJournal Tags:

del.icio.us Tags:

Cambiar el default collation de SQL Server

Si por alguna razón durante la instalación de SQL Server se especificó un collation que no era el adecuado, se puede ejecutar el siguiente comando para cambiarlo, el único requisito es que no existan BD de usuario existentes en la instancia de SQL Server.

setup.exe /qb INSTANCENAME=nombreDeLaInstancia REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=Contrasena SQLCOLLATION=SQL_Latin1_General_CP1_CS_AS

 

Saludos,

 

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

 

Technorati Tags:

 

LiveJournal Tags:

Thursday, April 16, 2009

Configurar SQL Server con MSDTC y Firewall

Cuando se tienen transacciones distribuidas en SQL Server con Component Services es necesario configurar el Firewall para que las transacciones puedan ser enlistadas en SQL Server.

 

clip_image006

 

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

LiveJournal Tags:

Technorati Tags:

Configurar SQL Server y MSDTC

Para configurar transcacciones distribuidas en SQL y Enterprise Services se tienen que seguir los siguientes pasos:

- En el MSDTC hay que poner la configuración de autentication en No Requerida

- El Servicio de SQL Server tienen que iniciarse despues que se ha iniciado el MSDTC

- Hay que ir al Firewall de Windows habilitarlo, despues deshahbilitarlo y crear dos excepcones: una para el programa c:\windows\system32\msdtc.exe y otra para el puerto 135

- Esto se tiene que hacer tanto en la maquina donde está corriendo el cliente, por ejemplo el IIS tanto como en el SQL Server

El MSDTC tiene que estar configurado asi tanto en el server como en el cliente

clip_image002

clip_image004

clip_image006

clip_image008

 

Saludos,

 

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

Technorati Tags:

 

LiveJournal Tags:

Monday, April 13, 2009

Oferta de Red Gate

La empresa RedGate está distribuyendo gratuitamente el libro Mastering SQL Server Profiler, lo pueden bajar de la siguiente dirección:

http://www.red-gate.com/products/SQL_Response/offers/mastering_sql_profiler_ebook.htm?utm_source=ssc&utm_medium=email&utm_content=profiler20090413&utm_campaign=sqlresponse

Revisé el libro y está excelente, lo recomiendo!

 

Saludos,

Eduardo Castro - Microsoft SQL Server

Costa Rica

http://comunidadwindows.org

Technorati Tags:

Friday, April 03, 2009

Determinar el uso de los índices en SQL Server

Muchas veces se definen índices en las base de datos y estos no son utilizados, entonces más bien generan overhead debido a que hay que darles mantenimiento si deseas saber cuáles índices se están utilizando o cuales no, puedes utilizar la siguiente consulta(*):

 

USE AdventureWorks;
go
SELECT o.name Object_Name,
       SCHEMA_NAME(o.schema_id) Schema_name,
       i.name Index_name,
       i.Type_Desc,
       s.user_seeks,
       s.user_scans,
       s.user_lookups,
       s.user_updates 
FROM sys.objects AS o
     JOIN sys.indexes AS i
ON o.object_id = i.object_id
     JOIN
  sys.dm_db_index_usage_stats AS s   
ON i.object_id = s.object_id  
  AND i.index_id = s.index_id
WHERE  o.type = 'u'
-- Clustered and Non-Clustered indexes
  AND i.type IN (1, 2)
-- Indexes that have been updated by not used
  AND(s.user_seeks >= 0 or s.user_scans >= 0 or s.user_lookups >= 0 );

Las columnas user_seeks, users_scans y user_lookups indican la cantidad de veces que dicho índice ha sido utilizado en una operación de ese tipo. Si todos los valores son cero indica que ese índice no ha sido utilizado, entonces podría tomarse la decisión de eliminarlo, pero tienes que ser precavido al respecto.

 

Saludos,

Eduardo Castro – Microsoft SQL Server - Costa Rica

http://comunidadwindows.org

 

Technorati Tags:

 

LiveJournal Tags:

 

(*) Modificación de la consulta publicada por Greg Larsen http://www.sql-server-performance.com/articles/per/Obtaining_Index_Usage_Information_p1.aspx

Herramienta de diagnóstico de SQL Server

He bajado y puesto a prueba la herramienta SQL Diagnostic Manager de Idera (http://www.idera.com/Content/Show17.aspx) la cual es una herramienta que permite idenficar de forma proactiva posibles problemas de rendimiento en los servidores SQL Server, esta herramienta identifica de forma automática problemas tales como procedimientos almacenados lentos, long running queries, consultas más frecuentes, fragementación de índices y tablas, entre otros. Si deseas puedes probarlo tú mismo y dar tu opinión.

 

Saludos,

 

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

 

Technorati Tags:

 

LiveJournal Tags:

Configuración de paralelismo en SQL Server

Uno de los parámetros que usualmente se modifica en SQL Server es el MAXDOP o Maximum Degree of Paralelism, este indica a SQL Server la cantidad de máxima de CPUs que pueden utilizarse en una tarea. Por ejemplo si una consulta puede dividirse en varios subconsultas entonces se puede asignar un CPU distinto a cada una de estas consultas.

Según Rod College* en un sistema OLTP con muchas transacciones cortas se necesitan muchos CPUs que atiendan muchas tareas de usuarios de forma simultánea, lo contrario a un sistema OLAP donde se requiere que múltiples CPUs atiendan a una única consulta que se puede ser dividida en muchas subconsultas pequeñas.

Por defecto MAXDOP es certo, o sea, que SQL Server decide la cantidad de procesadores a utilizar, puede ser 1 entonces se deshabilita el paralelismo o un número fijo que determine la cantidad máxima de CPUs a utilizar. Un heurístico utilizado es que en sistemas OLTP el valor de MAXDOP debe ser 8 aunque el servidor tenga más procesadores ya que el costo de dividir la consulta en más de 8 partes puede comprometer el beneficio del paralelismo.

Rob también recomienda que si se utiliza MAX_DOP = 1 a nivel de servidor se afecta la creación de índices que se beneficia del paralelismo para esto se debe evitar el MAX_DOP de la siguiente forma:

 

-- Uso del MAXDOP hint para eludir el MAXDOP del servidor

CREATE NONCLUSTERED INDEX [IXA]

ON [SchemaX].[TableX] ([ColumnX] ASC)

WITH (MAXDOP=0)

GO

 

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

LiveJournal Tags: ,
Technorati Tags:

*¨http://www.sql-server-performance.com/articles/per/maximum_degree_parallelism_p1.aspx

Wednesday, April 01, 2009

SQL Server Entendiendo Hyper-V

Para ejecutar SQL Server en Hyper-V primero hay que entender Hyper-V, existe un blog que nos explica esto y es de Virtual PC Guy, pueden consultarlo en esta dirección http://blogs.msdn.com/virtual_pc_guy/archive/2008/01/08/understanding-networking-with-hyper-v.aspx

 

Saludos,

Eduardo Castro - Microsoft SQL Server

http://comunidadwindows.org

 

Technorati Tags:

 

With Hyper-V the world of networking is quite different than it was with Virtual Server. First to set the scene, with Windows Server 2008 installed on a system with one network adapter you will see this under Network Connections:

shot1

And your system is operating like this:

netpic1

Once you install Hyper-V and create a virtual network your system now operates like this:

netpic2

As you can see the parent partition (host operating system in Virtual Server lingo) is now using a virtual network adapter to connect to the physical network.  If you look at network connections on the parent you will now see the original network adapter and a new virtual network adapter:

shot2 shot3

The original physical network adapter now has nothing bound to it except the Microsoft Virtual Network Switch Protocol.  The virtual network adapter now has all of the standard protocols and services bound to it instead.

Some interesting things to note here:

  • The virtual network adapter that appears under Network Connections will have the same name as the virtual network switch it is associated with.
  • It is possible to create an 'Internal' virtual network - which will expose a virtual network adapter to the parent partition without needing to have a physical network adapter associated with it.
  • Unlike with Virtual Server, Hyper-V only binds the virtual network service to a physical network adapter when a virtual switch is associated with the physical network adapter in question.  The advantage of this is that you avoid the performance overhead involved with having this service enabled on network adapters that are not associated with virtual network switches, the downside is that it means that networking gets disrupted on the network adapter in question when a virtual network switch gets created or deleted.

SQL Server 2016 Stretch Databases

El SQL Server Stretch Database permite que los datos históricos o de bitácoras puedan ser movidos hacia Azure, específicamente permite mover...