# La agonía de las pruebas de carga - me duele la cabeza (aunque los dos pueden no estar relacionados)

<datetime class="hidden">2004-02-20T00:00</datetime>

<!-- category -- mostlylucidcouk, Imported, Database, Performance, Testing -->
Deadlocks... ¡Odio a los pequeños cabrones!
Acabo de pasar el día tratando de arreglar un 'problema' con un sitio que desarrollé para un cliente. Esto es un poco molesto ya que es un problema 'teórico'. Esencialmente, el cliente ha elegido hacer algo que nunca hago normalmente, cargar las páginas de edición del sitio.
Desafortunadamente, este sitio tiene un sistema de edición impar - utiliza el concepto de una "común" tablas para mantener todos los elementos sin importar qué tipo de elemento son (por lo que tiene todas las propiedades comunes, con las propiedades distintas se mantienen en diferentes tablas). Este diseño me da una gran flexibilidad - y me permite utilizar un montón de controles comunes para representar los objetos en exhibición, para la seguridad, etc...
Sin embargo, tiene un gran inconveniente - para realmente editar algunos elementos significa hacer varias actualizaciones a la misma tabla en un caso de uso - también tiene un par de vistas indexadas en esa misma tabla. Esto me ha llevado a donde me encuentro actualmente, si ejecutamos más de decir 10 usuarios concurrentes (por lo tanto, la creación de 10 nuevos elementos en exactamente el mismo instante, a continuación, tratando de sacar los mismos datos de la DB) Obtengo esto después de alrededor de 200 repeticiones:

Transaction (Process ID 74) fue bloqueado en los recursos de bloqueo con otro proceso y ha sido elegido como la víctima de bloqueo.

Bueno, he estado trabajando en esto todo el día, optimizando consultas, creando nuevos índices, matando disparadores, cacheando datos en página, el lote... como resultado tengo un dolor de cabeza podrido y básicamente he perdido toda objetividad - ¡no tengo idea si realmente he mejorado las cosas o no!

¡También no ayuda que no sepa realmente el número objetivo de usuarios para los que estoy tratando de optimizar!
Por cierto, he calculado que basado en patrones de uso común, 10 ediciones concurrentes sería aproximadamente igual a ~1000 usuarios concurrentes 'ver' o alrededor de 144000 visitantes al día...umm..yes, eso es probablemente 100 veces más que este sitio consigue en pico...

Oh, debería decir, si alguien ha estado teniendo problemas con el sitio hoy, esto es culpa - he estado cargando pruebas como una locura y mi pobre servidor está sintiendo el dolor ...