2011-07-19 12 views

Respuesta

4

Usted podría inyectar un WAITFOR en su SQL:

ver este SO de control de calidad para obtener más información Sleep Command in T-SQL?

Dado un comando enviado a la base de datos:

SELECT * FROM MyTable

Incluidos en una SqlCommand:

using (var conn = new SqlConnection("connection string")) 
using (var comm = new SqlCommand("", conn)) 
{ 
    conn.Open(); 
    comm.CommandText = "SELECT * FROM MyTable"; 
    comm.ExecuteNonQuery(); 
} 

cambiarlo a algo como esto:

using (var conn = new SqlConnection("connection string")) 
    using (var comm = new SqlCommand("", conn)) 
    { 
     conn.Open(); 
#if DEBUG 
     comm.CommandText = "WAITFOR DELAY '00:00:01.000'; SELECT * FROM MyTable"; 
#else 
     comm.CommandText = "SELECT * FROM MyTable"; 
#endif 
     comm.ExecuteNonQuery(); 
    } 

Para incrustar un segundo de espera 1.

Lo ideal es que no desee hacer esto de una manera tan fea y cuestionable, pero a los efectos de la demostración bastará.

+0

¿Estás seguro de que puedo usar esto sin involucrarme con los Procedimientos de almacenamiento en SQL, las pistas que mencioné al usar SP son una limitación. –

+1

En algún momento está enviando comandos SQL a la base de datos, probablemente directamente desde el código. En el modo de depuración, agregue un código condicional que también inyecta un comando WAITFOR, los procedimientos almacenados no son un requisito para ello. –

+1

@Ehsan: Simplemente ejecuta 'WAITFOR DELAY '00: 00: 00.300 '; SELECCIONAR ...; ' –

2

Puede incluir un comando WAITFOR en su lote SQL.

O bien, podría agregar una gran cantidad de datos, y consultar sobre columnas no indexadas, eso seguramente lo hará lento.

Cuestiones relacionadas