Question

J'ai une fonction course longue qui devrait être insérer de nouvelles lignes. Comment puis-je vérifier l'état d'avancement de cette fonction?

Je pensais sale lit fonctionnerait si je lis http: //www.postgresql.org/docs/8.4/interactive/sql-set-transaction.html et est venu avec le code suivant et il a couru dans une nouvelle session:


SET SESSION CHARACTERISTICS AS SERIALIZABLE;

SELECT * FROM MyTable;

Postgres me donne une erreur de syntaxe. Qu'est-ce que je fais mal? Si je le fais bien, je vais voir les enregistrements insérés pendant cette fonction est longue encore en cours d'exécution?

Merci

Était-ce utile?

La solution

PostgreSQL ne met pas en œuvre un moyen pour vous de voir cela de l'extérieur de la fonction, alias niveau d'isolation READ UNCOMMITTED. Vos deux options de base sont:

  • Avoir l'utilisation de la fonction RAISE NOTICE de temps en temps pour vous montrer à quel point vous en êtes
  • Utilisez quelque chose comme dblink de la fonction à la même base de données, et mettre à jour un compteur table à partir de là. Puisque c'est une opération totalement distincte, le compteur sera visible dès que la transaction est validée -. Vous ne devez pas attendre la transaction principale (autour de l'appel de fonction) pour terminer

Autres conseils

PostgreSQL Transaction Isolation

  

Dans PostgreSQL, vous pouvez demander l'un des quatre niveaux d'isolation des transactions standard. Mais à l'intérieur, il n'y a que deux niveaux d'isolement distincts, qui correspondent aux niveaux Read Committed et Serializable. Lorsque vous sélectionnez le niveau READ UNCOMMITTED vous avez vraiment Read Committed, et lorsque vous sélectionnez Repeatable Read vous avez vraiment Serializable, de sorte que le niveau d'isolement réel pourrait être plus stricte que ce que vous sélectionnez. Ceci est permis par la norme SQL:. Les quatre niveaux d'isolement ne définissent que les phénomènes qui ne doit pas se produire, ils ne définissent pas les phénomènes doivent se produire

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top