lunedì 5 dicembre 2011

Venditore su mandato del database regolare contrazione

Domanda: Ho problemi con un fornitore di applicazioni che ha disposto che si corre regolarmente le operazioni di SHRINKDATABASE DBCC contro il database dell'applicazione e tempdb. Si dice che ciò sia necessario per le prestazioni - in grado di darmi qualche consiglio per favore?
Risposta: ho chiesto questo, almeno una volta al mese, in cui un fornitore di applicazioni si rifiuta di permettere un DBA per rimuovere regolarmente le operazioni di compattazione perché sono 'necessarie per l'esecuzione'.
Sappiamo tutti che la compattazione dei database provoca frammentazione dell'indice, consuma le risorse della CPU e IO, e genera un sacco di log delle transazioni (che può causare problemi per il mirroring, la replica, e così via). Sappiamo anche che ci sono alcune circostanze attenuanti, dove occasionalmente una tantum si restringe può essere necessario.
Inoltre, sappiamo che * regolarmente * database contrazione è un peccato capitale, perché se il database cresce più volte dopo essere stati ridotti, tutto quel lavoro shrink è completamente sprecato sforzo - la sua simile a dover auto-ridursi abilitato per il database.
Il problema che vedo è che le squadre fornitore dell'applicazione * non * sapere queste cose su di restringersi, e sono restii ad ascoltare chiunque cerchi di educarli.
Occasionalmente Mi butto su un thread e-mail con il mittente originale e la squadra fornitore dell'applicazione.Le giustificazioni da parte del team fornitore dell'applicazione sono di solito sulla falsariga di quanto segue (parafrasando):
  • Gli indici nel database sono già così frammentato contrazione non lo rende peggiore.
  • Nessuno ha mai lamentato prestazioni prima e allora perché sei?
  • Dobbiamo avere un regolare ridursi perché le operazioni che facciamo sì che il database di espandersi molto e clienti vogliono il loro spazio su disco posteriore.
  • Dobbiamo ridurre tempdb perché le operazioni che facciamo causa a crescere continuamente.
Nessuna di queste sono valide ragioni per regolare i database contrazione, e in realtà è documentato inarticolo KB 307487 che restringimento tempdb quando c'è attività degli utenti può portare a corruzione tempdb e il lavoro con tempdb in SQL Server 2005 whitepaper (applicabile a tutte le versioni), gli stati che "Shrinking file non è una pratica raccomandata ..."
Ogni volta che un venditore afferma che restringimento è necessario, dimostra sia un fraintendimento fondamentale di come SQL Server dovrebbe essere gestita o una carenza nel comportamento dell'applicazione che viene coperto attraverso la contrazione regolare - a mio parere.
Sentitevi liberi di tirarmi in una conversazione e-mail con i fornitori che sostengono che si restringono è necessaria!

Nessun commento:

Posta un commento

Nota. Solo i membri di questo blog possono postare un commento.