mirror of
https://github.com/psycopg/psycopg2.git
synced 2025-03-03 15:45:46 +03:00
Added notes about using execute_batch with prepared statements
This commit is contained in:
parent
9bac37baf7
commit
27652ed3b0
|
@ -993,6 +993,38 @@ parameters. By reducing the number of server roundtrips the performance can be
|
|||
|
||||
.. versionadded:: 2.7
|
||||
|
||||
.. note::
|
||||
|
||||
`!execute_batch()` can be also used in conjunction with PostgreSQL
|
||||
prepared statements using |PREPARE|_, |EXECUTE|_, |DEALLOCATE|_.
|
||||
Instead of executing::
|
||||
|
||||
execute_batch(cur,
|
||||
"big and complex SQL with %s %s params",
|
||||
params_list)
|
||||
|
||||
it is possible to execute something like::
|
||||
|
||||
cur.execute("PREPARE stmt AS big and complex SQL with $1 $2 params")
|
||||
execute_batch(cur, "EXECUTE stmt (%s, %s)", params_list)
|
||||
cur.execute("DEALLOCATE stmt")
|
||||
|
||||
which may bring further performance benefits: if the operation to perform
|
||||
is complex, every single execution will be faster as the query plan is
|
||||
already cached; furthermore the amount of data to send on the server will
|
||||
be lesser (one |EXECUTE| per param set instead of the whole, likely
|
||||
longer, statement).
|
||||
|
||||
.. |PREPARE| replace:: :sql:`PREPARE`
|
||||
.. _PREPARE: https://www.postgresql.org/docs/current/static/sql-prepare.html
|
||||
|
||||
.. |EXECUTE| replace:: :sql:`EXECUTE`
|
||||
.. _EXECUTE: https://www.postgresql.org/docs/current/static/sql-execute.html
|
||||
|
||||
.. |DEALLOCATE| replace:: :sql:`DEALLOCATE`
|
||||
.. _DEALLOCATE: https://www.postgresql.org/docs/current/static/sql-deallocate.html
|
||||
|
||||
|
||||
.. autofunction:: execute_values
|
||||
|
||||
.. versionadded:: 2.7
|
||||
|
|
Loading…
Reference in New Issue
Block a user