Domanda

Nella ricerca senza fine per le prestazioni (e la mia esperienza contundente), ho imparato un paio di cose che potrebbero trascinare verso il basso le prestazioni di un'istruzione SQL.

ossessivo compulsivo subquery Disorder
Fare conversioni di tipo folli (e nido di quelli nell'oblio)
Raggruppa per il funzioni di aggregazione di detto tipo folle conversioni
Dove fldID a (selezionare tutto, dalla mia 5mil tabella di record)

Io di solito lavoro con MSSQL. Quali strumenti sono a disposizione per testare le prestazioni di un'istruzione SQL? Sono questi gli strumenti costruiti e specifiche per ogni tipo di server DB? O ci sono strumenti generali disponibili?

È stato utile?

Soluzione

SQL Profiler (built-in): Monitoraggio con SQL Profiler

SQL Benchmark Pro (Commerciale)

SQL Server 2008 ha la nuova Data Collector

SQL Server 2005 (poi) ha un'indici mancanti gestione dinamica View (DMV) che può essere molto utile (ma solo per query di piani, in corso nella cache dei piani): A proposito degli indici mancanti Feature .

Non è anche il server motore di database SQL Ottimizzazione guidata che fa un lavoro ragionevole (solo non attuare tutto ciò che suggerisce!)

Altri suggerimenti

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

piani di esecuzione sono una delle prime cose da guardare durante il debug problemi di prestazioni delle query. Un piano di esecuzione vi dirà quanto tempo è più o meno speso in ogni porzione della query, e può essere utilizzato per identificare rapidamente se si sono indici mancanti o hanno costosi si unisce o loop.

MSSQL ha un consigliere di sintonia database che raccomanderà spesso gli indici per le tabelle basate su query comuni eseguiti durante il periodo di messa a punto, tuttavia wo't riscrivere una query per voi.

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

In mysql (può essere in altri database troppo) è possibile EXPLAIN la query per vedere che cosa server di database pensa. Questo di solito utilizzato per DeSide quali indici dovrebbero essere creati. E questo è build-in, in modo da poter utilizzare senza installare software aggiuntivo.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top