Domanda

In SQLServer, è possibile utilizzare la sintassi "(nolock)" ad assicurare la query non blocca la tabella o non è bloccato da altre query bloccaggio stessa tabella. per es.

SELECT * FROM mytable (nolock) WHERE id = blah

Qual è la sintassi equivalente in Postgres? Ho trovato un po 'di documentazione su bloccaggio tavolo in PG ( http: //www.postgresql .org / docs / 8,1 / / Interactive SQL-lock.html ), ma tutto sembra orientata a come di blocco un tavolo, non garantisce di essa la non bloccato .

È stato utile?

Soluzione

A SELEZIONE non bloccare qualsiasi tavolo in PostgreSQL, a meno che non si desidera che un blocco:

SELECT * FROM tablename FOR UPDATE;

MVCC per ridurre al minimo il conflitto di blocchi al fine di consentire prestazioni ragionevoli in ambienti multiutente. I lettori non siano in conflitto con gli scrittori, né gli altri lettori.

Altri suggerimenti

ho fatto qualche ricerca e sembra che il suggerimento NOLOCK in SQL Server è più o meno lo stesso livello di isolamento delle transazioni LEGGI UNCOMMITTED. In PostgreSQL, è possibile impostare READ UNCOMMITTED, ma aggiorna in silenzio il livello di READ COMMITTED. READ UNCOMMITTED non è supportato.

PostgreSQL 8.4 documentazione per l'isolamento di transazione: http: // www. postgresql.org/docs/8.4/static/transaction-iso.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top