Este tutorial explica cómo preparar AdventureWorks 2022 en un contenedor Docker y conectarlo a tu aplicación Monitor SQL para realizar pruebas de rendimiento y estrés.
Docker Desktop funcionando.
SQL Server Management Studio (SSMS) o Azure Data Studio instalado.
Archivo .bak: AdventureWorks2022.bak descargado.
Desde la terminal de Windows (PowerShell), mueve el archivo descargado al sistema de archivos interno de Docker:
PowerShell
docker cp "C:\Ruta\A\Tu\Descarga\AdventureWorks2022.bak" sql_server_dev:/var/opt/mssql/data/AdventureWorks2022.bak
Asegúrate de que el motor de SQL pueda leer el archivo:
PowerShell
docker exec -u 0 -it sql_server_dev chown mssql /var/opt/mssql/data/AdventureWorks2022.bak
Abre una Nueva Consulta (New Query) en SSMS y ejecuta el siguiente script para crear la base de datos:
SQL
USE [master];
GO
RESTORE DATABASE [AdventureWorks]
FROM DISK = N'/var/opt/mssql/data/AdventureWorks2022.bak'
WITH FILE = 1,
MOVE N'AdventureWorks2022' TO N'/var/opt/mssql/data/AdventureWorks.mdf',
MOVE N'AdventureWorks2022_Log' TO N'/var/opt/mssql/data/AdventureWorks_log.ldf',
NOUNLOAD, STATS = 5;
GO
Para ver los datos en tu aplicación, configura la conexión en el Sidebar de la siguiente manera:
| Campo | Valor |
| Host | localhost o 127.0.0.1 |
| Puerto | 1433 |
| Usuario | sa |
| Contraseña | TuPasswordFuerte123! |
| Base de Datos | AdventureWorks |
Importante: Si dejas la base de datos como
master, el monitor no podrá ver las tablas de ventas y te dará errorInvalid object name.
Ejecuta esto en una pestaña de SSMS para ver actividad en el monitor:
SQL
USE AdventureWorks;
GO
WHILE 1=1
BEGIN
SELECT TOP 100 p.Name, s.OrderDate, d.LineTotal
FROM Sales.SalesOrderHeader s
JOIN Sales.SalesOrderDetail d ON s.SalesOrderID = d.SalesOrderID
JOIN Production.Product p ON d.ProductID = p.ProductID
ORDER BY s.TotalDue DESC;
WAITFOR DELAY '00:00:01'; -- Ejecutar cada segundo
END
Para probar la detección de bloqueos en tu App:
Pestaña 1 (Bloqueador):
SQL
USE AdventureWorks;
BEGIN TRANSACTION;
UPDATE Production.Product SET Name = 'LOCK_TEST' WHERE ProductID = 1;
Pestaña 2 (Bloqueado):
SQL
USE AdventureWorks;
SELECT * FROM Production.Product WHERE ProductID = 1;
Observa el Monitor: Verás la sesión de la Pestaña 2 en estado SUSPENDED o Wait Type: LCK_M_S.
Error 208 (Invalid object): Asegúrate de escribir USE AdventureWorks; antes de tus queries o de haber seleccionado la DB en el monitor.
Error 3169 (Version incompatible): Estás usando un .bak de SQL 2025 en un servidor 2022. Descarga la versión 2022.
Login Failed: Verifica que no haya espacios al final de la contraseña en el formulario de la App (el código usa .strip() pero siempre es bueno revisar).
© Copyright 2016 nicdark.com - Design School Theme
Wonderful NicDark WP Theme
Deja una respuesta