pgsql: Use multi-inserts for pg_attribute and pg_shdepend

Поиск
Список
Период
Сортировка
От Michael Paquier
Тема pgsql: Use multi-inserts for pg_attribute and pg_shdepend
Дата
Msg-id E1k1KGN-00089W-Rm@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Use multi-inserts for pg_attribute and pg_shdepend

For pg_attribute, this allows to insert at once a full set of attributes
for a relation (roughly 15% of WAL reduction in extreme cases).  For
pg_shdepend, this reduces the work done when creating new shared
dependencies from a database template.  The number of slots used for the
insertion is capped at 64kB of data inserted for both, depending on the
number of items to insert and the length of the rows involved.

More can be done for other catalogs, like pg_depend.  This part requires
a different approach as the number of slots to use depends also on the
number of entries discarded as pinned dependencies.  This is also
related to the rework or dependency handling for ALTER TABLE and CREATE
TABLE, mainly.

Author: Daniel Gustafsson
Reviewed-by: Andres Freund, Michael Paquier
Discussion: https://postgr.es/m/20190213182737.mxn6hkdxwrzgxk35@alap3.anarazel.de

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/e3931d01f3afef14703827eda1dad0a3fb3b5d07

Modified Files
--------------
src/backend/access/heap/heapam.c  |   8 +-
src/backend/catalog/heap.c        | 199 +++++++++++++++++++++++---------------
src/backend/catalog/index.c       |  19 +---
src/backend/catalog/indexing.c    |  36 +++++++
src/backend/catalog/pg_shdepend.c |  60 +++++++++---
src/backend/commands/tablecmds.c  |   8 +-
src/include/catalog/heap.h        |   9 +-
src/include/catalog/indexing.h    |   5 +
8 files changed, 225 insertions(+), 119 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tatsuo Ishii
Дата:
Сообщение: pgsql: Doc: fix high availability solutions comparison.
Следующее
От: Thomas Munro
Дата:
Сообщение: pgsql: Cache smgrnblocks() results in recovery.