Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Esiste un modo/strumento per identificare la stima del tempo di esecuzione della query in SQL SERVER

Attualmente, n. Microsoft sta attualmente ricercando modi per farlo utilizzando una combinazione di lavoro già completato e un piano di esecuzione stimato (consulta i dettagli della loro ricerca sul sito Microsoft Research ), quindi possiamo aspettarci di vedere qualcosa presto. Ma questo è l'unico sviluppo di cui sono a conoscenza.

La soluzione che ho utilizzato con maggior successo in passato, per i processi che richiedono molto tempo, è suddividere il processo in attività più piccole e impostare pietre miliari alla fine di ogni attività. Viene registrato il tempo totale per tutte le esecuzioni di ciascuna attività e viene utilizzato per confrontare l'avanzamento dell'esecuzione corrente. Ciò dipende fortemente dalla linearità delle query (ad es. il tempo impiegato per l'esecuzione è linearmente proporzionale al numero di record). I traguardi possono essere misurati in fasi attraverso un processo, suddividendo i dati in segmenti più piccoli o entrambi.