Locking deaktivieren?

Hallo,

aus bestimmten Gründen muss ich Postgres dazu bekommen nur im Einbenutzer-Betrieb (eine Remote-Verbindung) zu laufen (evt. max_connections=1) und kein Locking durchzuführen.
Hat jemand einen Tipp, wie ich Postrges dazubringen kann auf Locking zu verzichten (setzen von Sperren+Überprüfen von gesetzten Sperren)?
Gibt es evt. builtin-Features und falls nicht, welche Stellen im Code sollte ich mir anschauen?

Danke
Sven

Sollte so gehen, ungetestet. Was bleibt, sind lokale Anmeldungen, und vermutlich belegen Dinge wie Autovacuum auch eine Verbindung, bin ich mir aber grad nicht sicher. Wozu brauchst Du das?

und kein Locking durchzuführen.

Versteh ich nicht ganz, setz halt keine.


Andreas

Bei einem UPDATE werden auch LOCKs gesetzt, selbst ein SELECT setzt einen LOCK auf die Daten, die gelesen wurden (damit jemand anderes die nicht zwischenzeitlich löscht).

Ganz verhindern kann man das nicht.


Bleibt die Frage offen, was der Originalposter vorhat - ein paar mehr Details wären (wie üblich) hilfreich.

Wie ads schon sagte, werden bei den Operationen automatisch Sperren gesetzt und dabei auch jedes Mal nach bereits gesetzten Sperren geprüft. Da ich diesen Overhead im Single-User-Betrieb nicht benötige, würde ich den gern eleminieren.
Aus welchen Gründen ist uninteressant. Mich interessiert halt, wie man das realisieren kann, ob es dazu von Postgres Möglichkeiten gibt - was ich nicht glaube.

Richtig, das geht nicht.

Eine Datenbank im Single-User Betrieb zu betreiben ist (in den meisten Fällen) auch nicht das, was du möchtest. Wer kümmert sich um Maintenance (aka VACUUM, Backup)? Dafür brauchst du wiederum Locking.

Das mein Vorhaben nicht dem eigentlichen Zweck und dem Standard-Betrieb von DBMSes entspricht ist mir wohl bekannt, ebenso die Arbeitsweise derer.
Ich wollte eigentlich nur wissen, ob jemandem eine Möglichkeit bekannt ist, bevor ich das selbst realisiere.
Um alle von dir aufgezählten Belange würde ich mich dann selbst kümmern.

Trotzdem danke…

Darf ich trotzdem fragen was du erreichen möchtest?

Um meine eigene Aussage zu verdeutlichen: mit dem “zwischenzeitlich löschen” meinte ich ein “DROP DATABASE” und ähnliche, nicht transaktionssichere Aktionen. Ein simples DELETE wird bereits von MVCC erledigt und benötigt kein LOCKing.