Testare la migrazione

Completato

Si supponga di essere un amministratore di database per uno studio legale e di aver aggiornato alcuni database della società. È ora necessario assicurarsi che tutto funzioni correttamente prima di riconfigurare le applicazioni per usare i nuovi database. È importante trovare e correggere le query non funzionanti e sostituire le funzionalità deprecate. È inoltre necessario che le prestazioni dei database siano uguali o migliori rispetto alla versione esistente.

Si vuole uno strumento che consenta di automatizzare il processo, poiché non sarebbe possibile testare accuratamente più applicazioni prima che gli utenti riprendano il lavoro.

Attività post-migrazione

Prima che le applicazioni inizino a utilizzare i nuovi database di destinazione, è necessario individuare e correggere eventuali problemi di compatibilità. Se si sta eseguendo un'operazione di aggiornamento su larga scala nei database aziendali critici, i problemi di compatibilità sono cruciali perché si vuole ridurre il più possibile il tempo di inattività. Inoltre, è necessario mantenere i livelli di prestazioni correnti o apportare miglioramenti, laddove possibile.

È naturale presupporre che il trasferimento del database in un nuovo hardware e alla versione più recente di SQL Server determini un aumento delle prestazioni. Questo presupposto potrebbe prendere alla sprovvista i DBA, perché le nuove funzionalità potrebbero essere riprogettate in un modo che influisce negativamente sulle prestazioni dei database meno recenti. Le stored procedure potrebbero non essere ottimali nel nuovo server. Testandole in anticipo si eviterà di scoprirlo solo dopo l'implementazione della modifica in produzione, quando gli utenti subiscono le conseguenze del rallentamento delle query.

Ottimizzare con Database Experimentation Assistant

Database Experimentation Assistant (DEA) consente di automatizzare il processo di test del carico di lavoro del database corrente in un server di destinazione. È progettato per i test A/B e consente di verificare quali saranno le prestazioni del database in una versione aggiornata di SQL Server. È anche possibile testare le prestazioni su hardware diverso o con nuove funzionalità aggiunte. Il punto cruciale dei test A/B è che si modifica un elemento: questo approccio fornisce una linea di base rispetto a cui testare una singola variante.

Screenshot of the Database Experimentation Assistant with the welcome screen displayed.

In pratica, un server potrebbe avere sviluppatori e DBA che applicano costantemente le modifiche. Quando una query rallenta, può essere difficile individuare la modifica che causa la riduzione delle prestazioni. Quando si testa il database in una versione aggiornata, è possibile creare il nuovo database e riprodurre un campione del carico di lavoro corrente nel database aggiornato tramite DEA.

DEA confronta un database di origine e uno di destinazione identici ad eccezione di una variante, ovvero il database aggiornato. Si esegue una traccia nel server di produzione di origine per acquisire le query che costituiscono un carico di lavoro tipico. L'esecuzione della traccia ha un impatto minimo sul server, quindi è possibile eseguire la traccia anche durante i periodi di carico elevato di richieste. Lo strumento DEA individua le query degradate e genera report drill-through per evidenziare il codice che viene eseguito più lentamente nell'ambiente di destinazione. È quindi possibile ottimizzare il codice prima di passare il sistema di produzione al database di destinazione.

Come eseguire test realistici

Per lo studio legale in origine era presente una situazione complessa con molti database distribuiti in server con più versioni di SQL Server.

Prima di eseguire gli aggiornamenti, assicurarsi di usare DEA per analizzare le prestazioni del sistema originale. Sarà quindi possibile confrontare le prestazioni dopo aver completato l'aggiornamento. Questa analisi garantisce che la modifica non abbia avuto un impatto negativo sulle prestazioni.

Lo strumento DEA riduce i tempi dedicati ad attività amministrative ed elimina gli errori umani, automatizzando la maggior parte del processo di test dopo l'aggiornamento dei database. Generando un report di analisi che evidenzia gli errori di query, le informazioni sul piano di query e le statistiche, è possibile correggere i problemi e ottimizzare le query rapidamente, ripristinando l'operatività delle applicazioni. DEA è progettato per il test A/B, quindi è possibile testare l'effetto di una singola modifica nel database. DEA è la soluzione ideale per ottimizzare i database prima di eseguire un aggiornamento.