Projet

Général

Profil

0003-sql-define-an-adapted-itersize.patch

Benjamin Dauvergne, 06 octobre 2021 09:51

Télécharger (1,46 ko)

Voir les différences:

Subject: [PATCH 3/3] sql: define an adapted itersize

For most small objects we can use a lot of prefetching, so we set a
limit of 2000, for SqlData objects (FormData and CardData) we set a
limit of 100 that should be a bit better than one but not enough to
overload memory with form's data.
 wcs/sql.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
wcs/sql.py
1417 1417
    _numerical_id = True
1418 1418
    _table_select_skipped_fields = []
1419 1419
    _iterate_on_server = True
1420
    _default_itersize = 2000
1420 1421

  
1421 1422
    @classmethod
1422 1423
    @guard_postgres
......
1659 1660
        if cls._iterate_on_server and iterator:
1660 1661
            conn = get_connection(isolate=True)
1661 1662
            cur = conn.cursor(name='select_iterator_%s' % uuid.uuid4())
1662
            cur.itersize = 1
1663
            cur.itersize = cls._default_itersize
1663 1664
        else:
1664 1665
            conn, cur = get_connection_and_cursor()
1665 1666
        cur.execute(sql_statement, parameters)
......
1866 1867
class SqlDataMixin(SqlMixin):
1867 1868
    _names = None  # make sure StorableObject methods fail
1868 1869
    _formdef = None
1870
    _default_itersize = 100
1869 1871

  
1870 1872
    _table_static_fields = [
1871 1873
        ('id', 'serial'),
1872
-