2009-12-18 12 views
28

Ho letto sul sito di MS che SQL Azure non supporta SQL Profiler. Che cosa usano le persone per profilare le query in esecuzione su questa piattaforma?SQL Azure Profiling

risposta

21

Non ho ancora smesso di giocare con SQL Azure, ma da quello che ho capito non c'è nulla che tu possa usare al momento.

From MS (probabilmente l'articolo che hai letto):

Poiché SQL Azure esegue l'amministrazione fisico , eventuali dichiarazioni e le opzioni che tentano di manipolare direttamente le risorse fisiche saranno bloccati, come ad esempio Resource Governatore, riferimenti al gruppo di file e alcune istruzioni DDL del server fisico. Non è inoltre possibile impostare le opzioni del server e i flag di traccia SQL o utilizzare il programma di analisi del server SQL o le utilità di ottimizzazione del database .

Se ci fosse un alernativo, immagino che richiederebbe la possibilità di impostare i flag di traccia che non si possono fare, quindi non credo ci sia un'opzione al momento.

soluzione? Posso solo suggerire di avere una copia di sviluppo locale del db in modo da poter eseguire il profiler localmente su di esso. So che non aiuterà con problemi "live"/debug/monitoring ma dipende da cosa ti serve.

Edit: Citazione di MSDN forum:

D: SQL Profiler supportato in SQL Azure ?

A: Non supportiamo SQL Profiler in v1 di SQL Azure.

Ora, è possibile interpretarlo come un suggerimento che Profiler sarà supportato nelle versioni future. Penso che sarà un grande requisito avere molte persone a bordo, usando SQL Azure seriamente.

+1

Secondo questa seguente link, sarà una caratteristica, ma nessuna data di rilascio deve ancora essere annunciata. http://social.msdn.microsoft.com/Forums/en-US/ssdsgetstarted/thread/fd128986-694b-421a-a863-44623590a144/ –

+2

Questo deve essere molto obsoleto, ma è il n. 2 su google. Ada puoi aggiornarlo (è sbagliato)? – jcollum

19

Update come del 2015/09/17:

Microsoft ha appena annunciato una nuova funzionalità denominata Index Advisor:

Come funziona Index Advisor funziona? Index Advisor monitora continuamente il carico di lavoro del database , esegue l'analisi e raccomanda nuovi indici che possono migliorare ulteriormente le prestazioni del database.

Le raccomandazioni vengono sempre aggiornate: mano a mano che il carico di lavoro DB e lo schema si evolvono, Index Advisor monitorerà le modifiche e adeguerà le raccomandazioni di conseguenza. Ogni suggerimento viene fornito con l'impatto stimato sulle prestazioni del carico di lavoro DB: è possibile utilizzare queste informazioni per dare la priorità ai consigli più impattanti. Con l'aggiunta di , Index Advisor offre un modo molto semplice e potente di creare gli indici raccomandati con .

La creazione di nuovi indici richiede solo un paio di clic. Index Advisor misura l'impatto degli indici appena creati e fornisce un report sull'impatto dell'indice agli utenti. È possibile iniziare con Index Advisor e migliorare le prestazioni del database con i seguenti semplici passaggi. È letteralmente ci vogliono cinque minuti per abituarsi con interfaccia utente semplice e intuitiva di Index Advisor. Iniziamo!

risposta originale:

SQL Azure ha ora un po 'di profilazione nativo. Vedi http://blogs.msdn.com/b/benko/archive/2012/05/19/cloudtip-14-how-do-i-get-sql-profiler-info-from-sql-azure.aspx per i dettagli.

+2

Questo non sembra mostrare le chiamate in entrata memorizzate, solo le più costose sono state eseguite in passato? – Rodney

2

posizione dichiarata di Microsoft SQL Server Profiler è deprecato. Per quanto questa sia una cattiva idea, that's what they have said.

SQL profilo è già obsoleta in SQL Server, e che fa parte della la ragione che essa non ha senso di portare a SQL DB.

Ciò significa che si sta di nuovo 20 anni nel monitoraggio delle prestazioni dei database e tutto sta andando ad avere per scrivere i propri script di monitoraggio perf invece di avere uno strumento consegnato standard di fabbrica che è su ogni server si andrà a . È come deprecare "sp_help" e fare in modo che ogni DBA scriva da solo. Spero che tu sappia tutti i tuoi DMV dentro e fuori ... INNER JOIN, OUTER JOIN, e CROSS APPLY syntax davvero bene.

+1

Questo non risponde alla domanda dell'OP; hanno chiesto cosa usare come alternativa. – betseyb

+0

Utilizzando gli strumenti tradizionali a cui si riferisce (SQL Profiler), non è possibile. Quale è esattamente la risposta alla sua domanda. Profiler ti dà accesso in tempo reale al kernel del database.I DMV sono qualsiasi cosa, da permanente a transitoria a seconda della pressione della memoria ... e varia a seconda del DMV. Ad esempio, i filestats virtuali sono permanenti. Le query peggiori non lo sono. Quindi sì, ho risposto alla domanda. La "soluzione" offerta da MSFT: vai su Internet di Google e spera che qualcun altro lo abbia capito perché stiamo eliminando lo strumento standard utilizzato da oltre 15 anni. – frankmcb

4

Update come del 2017/04/14:

Scott Guthrie di Microsoft ha annunciato oggi un sacco di nuove funzionalità in SQLAzure (questo è chiamato sqlazure gestito esempio, che è attualmente in anteprima), che dovrebbero essere presenti in SQLAzure venendo months..below sono loro

1.SQLAgent
2.SQLProfiler
3.SQLCLR
4.Service Broker
5.Logshipping, transazionale La replica
ripristinare 6.Native/Backup
di 7.Additional DMV e Xevents
8.cross di database interrogazione

Riferimenti:
https://youtu.be/0uT46lpjeQE?t=1415

+1

Buon aggiornamento, ma la risposta a questa domanda è in realtà [Eventi estesi] (https://docs.microsoft.com/en-us/azure/sql-database/sql-database-xevent-db-diff-from-svr). Sono sorpreso di vederlo mancante dalle cinque risposte su questo post !? – wBob