Thread: READ COMMITTE without START TRANSACTION?

READ COMMITTE without START TRANSACTION?

From
Date:
Hello,

I need to run some SELECT queries that take a while (10+ minutes) to complete, and I'm wondering about the isolation
aboutthe results I get.  More precisely, while my SELECT is running, the DB is being updated by another application,
andI am wondering which, if any, data changes my SELECT will see.
 

Example:
If I start my SELECT at 10:00, and it finishes at 10:10, will my results include data that was inserted between 10:00
and10:10?
 
Similarly, will my result include data that was updated between 10:00 and 10:10?
The same question for data that was deleted during that period.

If it matters, my SELECT runs from psql client, while concurrent inserts, updates, and deletes are executed from a
separateapplication (webapp).
 

For my purposes in this case I need the SELECT to get the results that represent data right at the beginning of the
query- a snapshot.  I read this: http://www.postgresql.org/docs/8.1/static/transaction-iso.html  and it looks like this
isthe default PG behaviour (READ COMMITTED)
 

Question:
If I do not explicitly START TRANSACTION before the SELECT, will this READ COMMITTED XA behaviour still be in effect?

Thanks,
Otis





Re: READ COMMITTE without START TRANSACTION?

From
"Jaime Casanova"
Date:
On 3/10/06, ogjunk-pgjedan@yahoo.com <ogjunk-pgjedan@yahoo.com> wrote:
> Hello,
>
> I need to run some SELECT queries that take a while (10+ minutes) to complete, and I'm wondering about the isolation
aboutthe results I get.  More precisely, while my SELECT is running, the DB is being updated by another application,
andI am wondering which, if any, data changes my SELECT will see. 
>
> Example:
> If I start my SELECT at 10:00, and it finishes at 10:10, will my results include data that was inserted between 10:00
and10:10? 
> Similarly, will my result include data that was updated between 10:00 and 10:10?
> The same question for data that was deleted during that period.
>

no

> If it matters, my SELECT runs from psql client, while concurrent inserts, updates, and deletes are executed from a
separateapplication (webapp). 
>

doesn't really matters

> For my purposes in this case I need the SELECT to get the results that represent data right at the beginning of the
query- a snapshot.  I read this: http://www.postgresql.org/docs/8.1/static/transaction-iso.html  and it looks like this
isthe default PG behaviour (READ COMMITTED) 
>

yes, it is

> Question:
> If I do not explicitly START TRANSACTION before the SELECT, will this READ COMMITTED XA behaviour still be in effect?
>

yes. all statements not executed inside a transaction block are in an
implicit transaction

> Thanks,
> Otis
>
>

--
regards,
Jaime Casanova

"What they (MySQL) lose in usability, they gain back in benchmarks, and that's
all that matters: getting the wrong answer really fast."                          Randal L. Schwartz