On 5 Ott, 13:03, Albe V° <
vac-cariTOGL...@hotmail.com> wrote:
> Patrick ha spiegato il 05/10/2011 :
>
> > Grazie della risposta "politicamente corretta", tutto giusto, tutto
> > corretto sulla carta. Ma quando intervieni in una situazione gi
> > "incancrenita" e hai a disposizione minuti e non mesi, l'unica cosa da
> > fare, per quanto "toppa", per il momento dare uno strumento agli
> > utenti per auto regolarsi, altrimenti passo la giornata al telefono a
> > chiedere a Tizio e a Caio di bloccare la loro elaborazione.
>
> Certo, capisco la situazione.
>
> Diciamo che per ogni tanto tu individuerai il 'colpevole' di un
> problema.
> A questo punto, dopo averlo sbloccato, potresti andare a studiare il
> perch del problema.
> Sai quante estrazioni passano da minuti a frazioni di secondo,
> semplicemente mettendo loro a disposizione l'indice giusto?
>
> Ecco, per quante possano essere le attivit client sul database, sono
> abbastanza convinto, per esperienza, che quelle veramente pesanti e
> bloccanti siano alla fin fine sempre le solite.
> Diciamo dieci tipologie, ma realisticamente potrebbero essere meno.
> Se ne efficienti una, hai ridotto del 10% il problema.
> Poi fra una settimana trovi la mezz'oretta per efficientarne un'altra.
>
> Guarda, abbiamo un server presso un cliente che era letteralmente
> sdraiato.
> C'erano procedure che quando partivano succhiavano cpu per uno o due
> minuti. Tutta roba scritta millemila anni fa, su versioni precedenti di
> sql-server e poi migrate assieme al database, ma senza ristudiarle.
> Con due giorni di lavoro cattivo mio e di un mio collega, adesso la
> procedura pi pesante lavora per 4-5 secondi al massimo.
> Le stesse procedure, che fanno le stesse cose, estraggono gli stessi
> dati, eseguono gli stessi inserimenti/aggiornamenti.
> Per succhiano il 90% di cpu in meno.
>
> Questo ha completamente azzerato, ma completamente, le lamentele di
> performance, i deadlock, i conflitti, ecc...
>
> Poi, capisco la tua non facile posizione.
>
> Cos , l'ho buttata l ...
>
> Ciao
>
> Alberto
Si ripeto hai ragione, ma tanto per darti qualche ordine di grandezza
in quest'ufficio girano qualcosa come 3600 query, 890 Pivot, 61
programmi e programmini vari, più una serie di processi
"sonnolenti" (trigger, web service, ecc.) che aggiornano i dati
ridondanti per rendere le ricerche più veloci.
Spesso il problema non è "una" elaborazione, ma "quella" elaborazione
quando va in concorrenza con "quell'altra" e "quell'altra ancora".
Semplicemente lanciandole in sequenza ognuno avrebbe i suoi dati senza
darsi fastidio a vicenda.
Per non saper nè leggere nè scrivere dovrei ottimizzare tutte le query
esistenti, utilizzare un server replicato per le elaborazioni pesanti
(analizzando se la cura non sia peggiore della malattia, in termini
prestazionali), "uccidere" tutte quelle attività, settore per settore,
inutili o ridondanti. Insomma un pò troppo per le mie deboli forze e
il tempo di cui dispongo, considerato che la contabilità deve
fatturare ADESSO, il data entry deve importare ADESSO, il customer
service deve inviare i documenti statistici ADESSO ecc. ecc..
Certo mi sembra strano che un sistema così ben congegnato come SQL
Server non abbia delle strutture che, interrogate, estrapolano i
processi che intasano il server.