Combinar SQL Server Profiler y Windows Performance Log para alertar o encontrar problemas de performance
SQL Profiler puede ayudarte de manera significativa cuando estás haciendo troubleshooting de performance en una base de datos SQL Server. Puedes combinar el Profiler con el funcionamiento de los Performance Logs (perfmon) . Tú puedes poner trazas de profiler (archivos TRC) en combinación con los contadores de performance (archivos BLG) para encontrar los puntos débiles en el performance de la instancia o base de datos.
En el ejemplo siguiente, demostraremos cómo encontrar un deadlock combinando ambas herramientas:
Configurar un contador de Performance:
Abrir el snap-in de Performance Logs and Alerts (herramientas administrativas de Windows)
Expandir Performance Logs and Alerts, botón derecho en Counter Logs y click en New Log Settings.
Escoger un nombre para el registro (por ejemplo DeadlockLogging)
En el tab de General dar click en Add Counters
Configurar las siguientes caracteristicas:
o Performance object: SQLServer:Locks
o Seleccionar counters from list: Number of Deadlocks/sec
o Seleccionar Instances from list: _Total , Click en Close
En el tab general, cambiar el intervalo a 1 segundo
En el tab de Log Files, seleccionar Text File (coma delimitada) para el Log File Type
En el tab de Schedule, seleccionar ambos métodos Start y Stop a Manualmente
Click OK (si un mensaje de alerta sale para crear el directorio, dar la opción sí)
Seleccionar el contador que se acaba de crear e iniciarlo, botón derecho y Start
Configurar el SQL Profiler:
Abrir el Profiler de SQL Server (All Programs\Microsoft SQL Server 2005\Performance Tools\SQL Server Profiler)
Crear una nueva traza (File \ New Trace…) y conectarse al servidor
En el cuadro de usar template, seleccionar el template TSQL_Replay
Activar la casilla/opción de Save to File y especificar la ubicación del archivo
Click en Run
Crear o provocar un deadlock:
Abrir la consola de SQL Server Management Studio
Abrir un nuevo query con la opción New Query y ejecutar las siguientes instrucciones:
USE tempdb;
GO
CREATE TABLE Product (
ProdID INT,
ProdName VARCHAR(50)
)
GO
INSERT INTO Product VALUES (1, ‘Book’)
GO
CREATE TABLE ProdOrder (
ProdOrderID INT,
ProdID INT,
OrderCode VARCHAR(10)
)
GO
INSERT INTO ProdOrder VALUES (1, 1, ‘BKO1′)
GO
Introducir el siguiente query en una nueva ventana pero no correrlo todavia:
USE tempdb;
GO
BEGIN TRAN
UPDATE Product
SET ProdName = ‘DVD’
WHERE ProdID = 1
WAITFOR DELAY ’00:00:10′
UPDATE ProdOrder
SET OrderCode = ‘DVD01′
WHERE ProdOrderID = 1
Abrir una nueva ventana de query y teclear las siguientes instrucciones:
USE tempdb;
GO
BEGIN TRAN
UPDATE ProdOrder
SET OrderCode = ‘BK01′
WHERE ProdOrderID = 1
WAITFOR DELAY ’00:00:10′
UPDATE Product
SET ProdName = ‘BOOK’
WHERE ProdID = 1
Iniciar ambos queries
Despues de algunos segundos de ejecución en los queries, el error siguiente será mostrado: : “Msg 1205, Level 13, State 45, Line 8 Transaction (Process ID 53) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.”
Buscar el deadlock en el Profiler:
Abrir la consola de Performance Log and Alerts y detener el contador previamente creado e inicializado “DeadlockLogging”
Cambiarse inmediatamente al SQL Profiler y detener la traza
Cerrar el SQL Profiler y abrir el archivo de traza que se creó. Desde el menú de File, seleccionar Import Performance Data y seleccionar el archivo de log y contador creado por Performance Log and Alerts.
En el cuadro de dialogo de Performance Counter Limit asegurse que todos los contadores están seleccionados y dar click en OK.
Ahora puedes colocarte a través del timebar y ver qué sentencia o instrucción provoco el problema de performance / deadlock.
SQL Error 5120
Si alguna vez te aparece esta pantalla con el error 5120 como a continuación:
Sólo debes abrir el SQL Management Studio como Administrador
Fácil eh?
Desinstalar programas en Modo Seguro
|
En Modo Seguro: Escribir lo siguiente en la consola: REG ADD “HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Minimal\ MSIServer”/VE/T REG_SZ /F/D”Service” |
|
|
|
Luego subir el servicio con el siguiente commando_ net start msiserver Modo Seguro con Funciones de Red: Escribir lo siguiente en la consola: REG ADD “HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Network\ MSIServer”/VE/T REG_SZ/F/D”Service” Luego subir el servicio con el siguiente commando_ net start msiserver |
Remover driver de impresora completamente en Windows 7 y Vista
Lo primero es abrir la consola, para eso tipeamos mmc y la abrimos.

MMC

MMC
Ahora debemos agregar la plantilla correspondiente a las impresoras

MMC – Add/Remove Snap-in…
Una vez seleccionada la añadimos

MMC – Print Management
En esta ventana debemos elegir el servidor donde queremos eliminar los drivers

MMC – Add the Local Server
Una vez seleccionado el driver, podemos eliminarlo directamente.

MMC – Remove Driver Package
Ahora solo queda reiniciar la máquina para que ya no utilice los drivers.
Ejecutar scripts de confianza, desactivar restricción en powershell.
Si aparece el siguiente mensaje al ejecutar un script en powershell significa que se encuentra restringido:
“Security Warning – Run only scripts that you trust. While scripts from the Internet can be useful, this script can potentially harm your computer. Do you want to run –.ps1? [D] Do not run [R] Run once [S] Suspend [?] Help (default is “D”)
Para desactivar la restricción, primero debemos abrir la consola y ejecutar el siguiente comando:
“Get-ExecutionPolicy”

set-executionpolicy bypass

Ahora se encuentra desactivada
Ping devuelve IPv6, que con el IPv4?
En algunas ocasiones cuando estamos en una misma red o Vlan y pingeamos el hostname nos devuelve la IPv6.
Para que nos entregue la IPv4 debemos hacer lo siguiente:
Ping hostname -4
Simplemente se debe añadir el parámetro -4
SQL Tips: Solución a usuarios huérfanos en una DB
En algún momento es necesario mover una base de datos de una instancia a otra, esto genera usuarios huérfanos debido a que no genera correctamente el mapping del usuarios y sus permisos, al momento de crear nuevamente el usuario y asignarle la respectiva DB aparece la siguiente imagen:

SQL Server utiliza un proceso especial que re-asocia los usuarios de una base de datos con los login del servidor.
Con el siguiente script podemos automatizar este proceso:
USE BASEDEDATOS
GO
sp_change_users_login ‘auto_fix’, ‘NombredeUsuario’
Esto arrojará el siguiente resultado:
The row for user ‘ ‘ will be fixed by updating its login link to a login already in existence.
The number of orphaned users fixed by updating users was 1.
The number of orphaned users fixed by adding new logins and then updating users was 0.
Solucionado.
Consideraciones para Virtualizar Controladores de Dominio con Hyper-V
Los Controladores de Dominio que corran sobre máquinas virtuales tienen ciertas restricciones que no aplican para máquinas físicas, al virtualizar un controlador es necesario aplicar ciertas prácticas:
- No pausar, detener, o guardar estado de un controlador virtualizado por periodos prolongados mayor al “tombstone” del dominio, hacer esto puede influir en la replicación del directorio, como determinar el tombstone: (http://go.microsoft.com/fwlink/?LinkId=137177).
- No copiar o clonar discos virtuales (VHDs).
- No tomar Snapshot de un controlador de dominio.
- No usar discos diferenciados VHD de un controlador virtual. Esto puede revertir un estado y decrecer el rendimiento.
- No usar la característica exportar en un controlador virtualizado.
- No restaurar un controlador virtualizado debido al rollback en la base de datos de Active Directory, explicado en Backup and Restore Considerations for Virtualized Domain Controllers.
Saludos
Scripts SQL Server: Como ver el log de Transacciones
SELECT * FROM ::fn_dblog(NULL, NULL)
USE BASE_DE_DATOS
GO
DBCC LOG (BASE_DE_DATOS, 2)
GO
Scripts SQL Server: Ver el espacio usado por una base de datos
//Nos movemos a la base de datos
USE BASE_DE_DATOS
GO
//Actualizamos la estadística
DBCC UPDATEUSAGE(0)
GO
//Usamos el procedimiento spaceused para ver con detalle el espacio usado y el libre
sp_spaceused
GO
También puedes usar procedimientos como sp_helpfile o sp_helpdb
Saludos