# L'agonia dei test di carico - la mia testa fa male (anche se i due possono non essere correlati)

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

<!-- category -- mostlylucidcouk, Imported, Database, Performance, Testing -->
Deadlocks ... Odio i piccoli bastardi!
Appena trascorso la giornata cercando di risolvere un 'problema' con un sito che ho sviluppato per un client. Questo è un po ' fastidioso in quanto è un problema 'teorico'. Essenzialmente, il client ha scelto di fare qualcosa che non faccio mai normalmente, caricare testare le pagine di modifica del sito.
Purtroppo, questo sito ha uno strano sistema di editing - usa il concetto di una tabella 'comune' per contenere tutti gli elementi indipendentemente dal tipo di elemento che sono (così detiene tutte le proprietà comuni, con le proprietà distinte che si tengono in tabelle diverse). Questo disegno mi dà un sacco di flessibilità - e mi permette di utilizzare un sacco di controlli comuni per rappresentare gli oggetti in esposizione, per la sicurezza ecc...
Tuttavia, ha un grande inconveniente - in realtà modificare alcuni elementi significa fare più aggiornamenti alla stessa tabella su un Use-Caso - ha anche un paio di viste indicizzate su quella stessa tabella. Questo mi ha portato a dove mi trovo attualmente, se eseguiamo più di dire 10 utenti concorrenti (quindi, la creazione di 10 nuovi elementi esattamente nello stesso istante, quindi cercando di tirare gli stessi dati dal DB) Ottengo questo dopo circa 200 ripetizioni:

Transaction (Process ID 74) è stato bloccato sulle risorse di blocco con un altro processo ed è stato scelto come vittima di stallo. Riavviare la transazione.

Beh, ho lavorato su questo tutto il giorno, ottimizzando le query, creando nuovi indici, uccidendo trigger, cache di dati in pagina, il sacco ... come risultato ho un mal di testa marcio e fondamentalmente hanno perso tutta l'oggettività - Non ho idea se ho davvero migliorato le cose o no!

Inoltre non aiuta che in realtà non conosco il numero target di utenti che sto cercando di ottimizzare per!
Tra l'altro, ho calcolato che sulla base di modelli di utilizzo comune, 10 modifiche simultanee sarebbe approssimativamente uguale ~1000 utenti concorrenti 'vista' o circa 144000 visitatori al giorno ... umm..sì, che è probabilmente 100 volte più di questo sito ottiene al picco ...

Oh, dovrei dire, se qualcuno ha avuto problemi con il sito oggi, questo è da biasimare - ho caricato test come una cosa pazza e il mio povero server sente il dolore...