Frage

Wir sind noch ziemlich neu in Postgres und kamen von Microsoft SQL Server.

Wir wollen nun einige gespeicherte Prozeduren schreiben. Nun, nachdem kämpfen, etwas mehr zu bekommen komplizierter als ein hello world zur Arbeit in pl / pgsql, beschlossen wir, es ist besser, wenn wir gehen, eine neue Sprache zu lernen, wir Python als auch lernen können, weil wir die gleiche Abfrage arbeiten in es in etwa 15 bekam Minuten (beachten Sie, keiner von uns wirklich wissen, python).

Also ich habe einige Fragen zu diesem Thema im Vergleich zu pl / psql.

  1. Sie pl / Pythonu langsamer als pl / pgsql?
  2. Gibt es irgendeine Art von „guten“ Referenz für, wie man schreibt gut Stored Procedures es mit? Fünf kurze Seiten in der Postgres-Dokumentation nicht wirklich sagen uns genug.
  3. Was Abfrage Vorbereitung? Sollte es immer verwendet werden?
  4. Wenn wir die SD und GD-Arrays für eine Vielzahl von Abfragepläne verwenden, wird es immer zu voll erhalten oder einen negativen Einfluss auf den Server? Wird es automatisch die alten Werte gelöscht werden, wenn es zu voll wird?
  5. Gibt es eine Hoffnung, es ist eine vertrauenswürdige Sprache zu werden?

Auch unsere Stored Procedure Nutzung ist extrem leicht. Gerade jetzt wir nur 4 haben, aber wir versuchen immer noch kleines Stückchen Code über von SQL Server-spezifischer Syntax (wie Variablen, die nicht in Postgres außerhalb von gespeicherten Prozeduren verwendet werden) zu konvertieren

War es hilfreich?

Lösung

  1. Hängt davon ab, welche Operationen Sie tun.
  2. Nun, kombiniert, dass mit einer allgemeinen Python-Dokumentation, und das ist, was Sie haben.
  3. Nein. Auch hier hängt davon ab, was Sie tun. Wenn Sie nur eine Abfrage einmal laufen gehen, keinen Punkt separat vorbereitet.
  4. Wenn Sie persistente Verbindungen verwenden, es könnte. Aber sie bekommen geräumt, wenn eine Verbindung geschlossen ist.
  5. Unwahrscheinlich. Sandbox ist in Python gebrochen und AFAIK niemand wirklich interessiert es bei der Festsetzung. Ich hörte jemanden sagen, dass Python-on-Papagei kann der praktikabelste Weg sein, sobald wir haben pl / Papagei (die wir nicht noch) nicht.

Unterm Strich aber - wenn Ihre gespeicherten Prozeduren gehen Datenbank zu tun, verwenden Sie pl / pgsql. Verwenden Sie nur pl / Python, wenn Sie nicht-Datenbank Sachen, wie im Gespräch mit externen Bibliotheken tun werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top