ich mit einer Milliarde Zeilen einen Tisch haben, und ich möchte die durchschnittliche Zeit und die Standardabweichung der Zeit für mehrere Abfragen der Form bestimmen:Statistiken über Abfragezeit (PostgreSQL)
select * from mytable where col1 = '36e2ae77-43fa-4efa-aece-cd7b8b669043';
select * from mytable where col1 = '4b58c002-bea4-42c9-8f31-06a499cabc51';
select * from mytable where col1 = 'b97242ae-9f6c-4f36-ad12-baee9afae194';
....
ich tausend haben zufällige Werte für col1 in einer anderen Tabelle gespeichert.
Gibt es eine Möglichkeit zu speichern, wie lange jede dieser Abfragen (in Millisekunden) in einer separaten Tabelle dauerte, damit ich einige Statistiken über sie ausführen kann? So etwas wie: führe für jeden col1 in meiner zufälligen Tabelle die Abfrage aus, zeichne die Zeit auf und speichere sie in einer anderen Tabelle.
Ein völlig anderer Ansatz wäre in Ordnung, solange ich in PostgreSQL bleiben kann (d. H. Ich möchte kein externes Programm schreiben, um dies zu tun).
Gibt es eine Möglichkeit, nur die Zeit auszugeben, so dass ich keine Datei analysieren muss? Das werde ich tun, wenn es sein muss, aber es scheint einfach so zu sein, dass es einen einfacheren Weg geben sollte. –
'psql -c" EXPLAIN ANALYSE wähle * aus mytable wo col1 ... "| grep "Total runtime" ' –
Ich bin wirklich auf der Suche nach einer Möglichkeit, dies vollständig in SQL zu tun, wenn möglich. Es scheint, als ob ich in der Lage sein sollte, die Laufzeit, die sie in der interaktiven Shell von psql zurückgibt, direkt als Wert zu speichern. Ihre Antwort ist ziemlich korrekt und ist, was ich geplant habe, wenn niemand mir eine reine SQL-Antwort geben kann. Danke für Ihre Zeit! –