2009-10-12 18 views
7

Nella ricerca infinita di prestazioni (e della mia esperienza di rancore), ho imparato alcune cose che potrebbero trascinare le prestazioni di un'istruzione SQL.Quali strumenti sono disponibili per testare le prestazioni dell'istruzione SQL?

ossessivo compulsivo Sottointerrogazioni
fare conversioni di tipo folli (e nidificano quelli nell'oblio)
Group By sulle funzioni di aggregazione di detto tipo folle conversioni
Dove fldID a (selezionare tutto, dalla mia 5mil tabella di record)

In genere lavoro con MSSQL. Quali strumenti sono disponibili per testare le prestazioni di una dichiarazione SQL? Questi strumenti sono integrati e specifici per ogni tipo di server DB? O ci sono strumenti generali disponibili?

+0

Stai randellando le cose per l'esperienza? O la tua esperienza * sta germogliando *? +1 per il mittente di Mitch. – DaveE

risposta

9

SQL Profiler (built-in): Monitoring with SQL Profiler

SQL Benchmark Pro (Commerciale)

SQL Server 2008 ha la nuova Data Collector

SQL Server 2005 (in poi) ha indici mancanti di gestione dinamica (DMV) che possono essere molto utili (ma solo per i piani di query attualmente nella cache del piano): About the Missing Indexes Feature.

C'è anche lo SQL Server Database Engine Tuning Advisor che fa un lavoro ragionevole (solo non attuare tutto ciò che suggerisce!)

+0

Grazie, questo mi fa iniziare. Questo copre l'angolo MSSQL, ci sono strumenti generali disponibili per MySQL o Oracle? O quelli hanno i loro strumenti? – MoSlo

3

Io per lo più basta usare Profiler e il piano di esecuzione spettatore

+0

Praticamente tutto ciò che serve, sempre, per le singole query – gbn

0

MSSQL ha un consigliere di sintonia database che raccomanderà spesso gli indici per le tabelle basate su query comuni eseguiti durante il periodo di tuning, tuttavia non riscriverà una query per te.

A mio parere, l'esperienza e la sperimentazione sono i migliori strumenti per la scrittura di buone query SQL.

0

In mysql (potrebbe essere anche in altri database) è possibile EXPLAIN la query per vedere cosa ne pensa il server di database. Questo di solito è usato per deside quali indici dovrebbero essere creati. E questo è integrato, quindi puoi usarlo senza installare software aggiuntivo.

0

Adam Machanic ha un semplice strumento chiamato SqlQueryStress che potrebbe essere utile. È progettato per essere utilizzato per "eseguire un test rapido delle prestazioni su una singola query, al fine di testare idee o convalidare le modifiche".

+0

Lo strumento di Adam è davvero eccezionale. L'ho usato e l'ho trovato molto utile per la messa a punto del mio db. –

1

Execution Plans sono una delle prime cose da considerare durante il debug dei problemi di prestazioni delle query. Un piano di esecuzione ti indicherà quanto tempo viene speso approssimativamente in ogni parte della query e può essere utilizzato per identificare rapidamente se mancano indici o costosi join o loop.

Problemi correlati