PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Erkennen und behandeln Sie, wenn eine Datenbankabfrage fehlschlägt

Wie Sie bereits erwähnt haben, ist es schwer vorherzusagen, wie lange eine Abfrage läuft (aufgrund der Abfrage selbst und ihrer Parameter, aufgrund des Netzwerks, aufgrund der Serverlast).

Auf jeden Fall sollten Sie die SQL-Abfragen in QThreads verschieben. Dadurch kann Ihre Anwendung die GUI bedienen, während die Abfragen ausgeführt werden.

Auch würde ich nicht versuchen, dies durch Timeouts zu lösen. Sie werden eine Menge Ärger bekommen, weil Sie nicht die richtigen Timeouts für jede Abfrage und jede Situation auswählen können. Stellen Sie stattdessen eine Möglichkeit bereit, Abfragen über eine Schaltfläche oder einen Dialog abzubrechen, damit der Benutzer entscheiden kann, ob es sinnvoll ist, weiter zu warten oder nicht.