Po PostgreSQL tuning fo for Oracle DBAs Ab About me me Her - - PowerPoint PPT Presentation

po postgresql tuning fo for oracle dbas ab about me me
SMART_READER_LITE
LIVE PREVIEW

Po PostgreSQL tuning fo for Oracle DBAs Ab About me me Her - - PowerPoint PPT Presentation

Po PostgreSQL tuning fo for Oracle DBAs Ab About me me Her Herv Sc Schweitzer CTO Principal consultant +41 79 963 43 67 herve.schweitzer[at]dbi-services.com PostgreSQL tuning for Oracle DBAs 02.04.19 Page 2 Ag Agenda 1.My story


slide-1
SLIDE 1

Po PostgreSQL tuning fo for Oracle DBAs

slide-2
SLIDE 2

Ab About me me

02.04.19 Page 2 PostgreSQL tuning for Oracle DBAs

Her Hervé Sc Schweitzer

CTO Principal consultant +41 79 963 43 67 herve.schweitzer[at]dbi-services.com

slide-3
SLIDE 3

Ag Agenda

1.My story 2.Some tips 3.Database optimizer 4.Object statistics 5.Execution plan 6.Conclusion

02.04.19 Page 4 PostgreSQL tuning for Oracle DBAs

slide-4
SLIDE 4

02.04.19 Page 5 PostgreSQL tuning for Oracle DBAs

1 2 3 4 5 6

My My s stor

  • ry
slide-5
SLIDE 5

02.04.19 PostgreSQL tuning for Oracle DBAs Page 6

My My story

1997 – 1999 Linux Admin/Adabas DBA 1999 – 2003 Oracle DBA (Mainly Database performance Tuning) 2003 – 2010 Oracle Senior Consultant (HA-Tuning) 2010 – 2018 CTO – Oracle Consultant (HA-Tuning-GoldenGate) – Oracle OCM 2018 – Today CTO – Oracle Consultant / PostgreSQL performance Tuning Why the switch ?

The PostgreSQL database is part of our daily business today Both RDBMS have many similarities (Linux based, cmdline with scripts) Beta and development releases are available without any restriction to test future features Can be directly implemented at customers without any license issues You can implement what you recently learned J

slide-6
SLIDE 6

02.04.19 Page 8 PostgreSQL tuning for Oracle DBAs

1 2 3 4 5 6

Som Some t tips

Prompt MacOS user

slide-7
SLIDE 7

02.04.19 PostgreSQL tuning for Oracle DBAs Page 9

So Some tip ips

Prompt De Default PostgreSQL prompt

Is terminating with "#" Hashtag ”#" prompt can be confuse, because is also the default Linux ROOT prompt Therefore I decided to change it, to an Oracle like prompt to begin with Postgres J [root@dbi-pg ~]# postgres@dbi-pg :/home/postgres/ [PG11] psql -U postgres postgres postgres=# postgres@dbi-pg :/home/postgres/ [PG11] psql -U postgres postgres postgres PSQL> \c test You are now connected to database "test" as user "postgres". test PSQL> test PSQL> first line of multiline code (test PSQL> second line of multiline code (test PSQL> ;

slide-8
SLIDE 8

02.04.19 PostgreSQL tuning for Oracle DBAs Page 10

So Some tip ips

Prompt Ho How to cha hang nge e the he pr promp mpt of the he Postgres es Linux nux us user er

PROMPT1

> Single line code ended by ";"

PROMPT2

> Multi line code ended by ";"

postgres@dbi-pg :/home/postgres/ [PG111] cat .psqlrc . . . \set PROMPT1 '%/ PSQL> ' \set PROMPT2 '(%/ PSQL> '

slide-9
SLIDE 9

02.04.19 PostgreSQL tuning for Oracle DBAs Page 12

So Some tip ips

MacOS user Ba Backslash on MacOS Without always entering a 3 key y combination : Alt + Maj + /

Install Karabiner-Elements and configure another key combination

Wh Why th this combinati tion

Because slash is "Shift + 7"

slide-10
SLIDE 10

02.04.19 Page 17 PostgreSQL tuning for Oracle DBAs

1 2 3 4 5 6

Database e opti timizer er

Oracle vs PostgreSQL terminologies Optimizer flow Parsing Planning Executions Optimizer parameter The cost model

slide-11
SLIDE 11

02.04.19 PostgreSQL tuning for Oracle DBAs Page 18

Da Database optimizer

Oracle vs PostgreSQL terminologies Op Optimizer

Transforms the statement Generate different execution plans Evaluates costs for all operation to get costs for several execution plans Choose execution plan with the best (lowest) cost

Ob Object ct Statistics cs

Required for the optimizer to generate the best access plan with the lowest cost Object statistics collect different information Oracle and PostgreSQL collect also histograms to identify the content of one columns (e.g. skewed data)

Oracle and PostgreSQL optimizer are working the same way Oracle and PostgreSQL Statistics are working the same way

slide-12
SLIDE 12

02.04.19 PostgreSQL tuning for Oracle DBAs Page 19

Da Database optimizer

Oracle vs PostgreSQL terminologies Bu Buffer Ca Cache

Oracle buffer cach

che

> All data blocks are saved into the database buffer cache

PostgreSQL Shared buffer cach

che

> Less blocks are cached, all other data are cache on the OS level (filesystem cache)

With Oracle the memory will be mainly managed from the database With PostgreSQL the memory will be mainly managed from the OS

slide-13
SLIDE 13

02.04.19 PostgreSQL tuning for Oracle DBAs Page 20

Da Database optimizer

Oracle vs PostgreSQL terminologies Sh Shared Pool

  • ol

Oracle Shared Pool

> All dictionary information, executions plans, running information will be cached there

Po

PostgreSQL does not have any Shared Po Pool fo for the moment

> Session information is only cached in the session it self, nothing is shared cross-session

Oracle shared memory is available for existing and new sessions No Shared Pool exist for PostgreSQL

slide-14
SLIDE 14

02.04.19 PostgreSQL tuning for Oracle DBAs Page 21

Da Database optimizer

Oracle vs PostgreSQL terminologies

Disk blocks Kernel disk buffer cache

PostgreSQL Shared Buffer Cache Write Ahead Log

fsync fsync

PG Backend PG Backend PG Backend recovery

maintenance_ work_mem work_mem temp_buffers

per process

slide-15
SLIDE 15

02.04.19 PostgreSQL tuning for Oracle DBAs Page 22

Da Database optimizer

Oracle vs PostgreSQL terminologies Pa Parsing (log_parser_stats)

Check the syntax and semantic Check access rights PostgreSQL also rewrite the SQL and format it into a raw tree format With a PREPARE statement this step occurs once

Op Optimizi zing/Pl /Planning (log_planner_stats)

Step where the best plan will be generated based on the object statistics For Oracle, the rewrite of the SQL is done here This step is the Hard Parsing time for Oracl

cle, what not always occurs if available into the SharedPool

With a Po

Postgres PREPARE statement after 5 executions it it will ill sometim imes als also bypas assed

PostgreSQL does a little bit more during parsing time Oracle does not always need this step(HardParse), if the cursor is still available on the SharedPool

slide-16
SLIDE 16

02.04.19 PostgreSQL tuning for Oracle DBAs Page 23

Da Database optimizer

Oracle vs PostgreSQL terminologies Ex Exec ecut uting ng (log_executor_stats)

Executions of the SQL based of the execution plan generated During execution the data will be fetched back to the client

Oracle and PostgreSQL executions are working the same way

slide-17
SLIDE 17

02.04.19 PostgreSQL tuning for Oracle DBAs Page 24

Da Database optimizer

Optimizer flow

PostgreSQL Parse statement Rewrite query Query Generate Paths Generate Plan

src/backend/executor/README

Execute plan insert update delete select Cheapest path will be used by the planner Object Statistics pg_class pg_statistics

Magic happens Parsing Planning Executing

src/backend/optimizer/README src/backend/parser/README

slide-18
SLIDE 18

02.04.19 PostgreSQL tuning for Oracle DBAs Page 25

Da Database optimizer

Parsing Di Display the parsing time of an SQL statement

System level Session level User level Output into logfile postgresql.log

postgres PSQL> alter system set log_parser_stats=true; postgres PSQL> select pg_reload_conf(); postgres PSQL> set log_parser_stats=true; postgres PSQL> select 1;

2018-09-24 22:20:40.887 CEST - 61 - 15900 - [local] - postgres@postgres LOG: PARSER STATISTICS ! 0.000004 s user, 0.000019 s system, 0.000021 s elapsed 2018-09-24 22:20:40.887 CEST - 64 - 15900 - [local] - postgres@postgres LOG: PARSE ANALYSIS STATISTICS ! 0.000003 s user, 0.000013 s system, 0.000016 s elapsed 2018-09-24 22:20:40.887 CEST - 67 - 15900 - [local] - postgres@postgres LOG: REWRITER STATISTICS ! 0.000000 s user, 0.000002 s system, 0.000002 s elapsed

postgres PSQL> alter user HR set log_parser_stats=true;

slide-19
SLIDE 19

02.04.19 PostgreSQL tuning for Oracle DBAs Page 26

Da Database optimizer

Planning Di Display the planner time of an SQL statement

System level Session level User level Output into logfile postgresql.log

postgres PSQL> alter system set log_planner_stats=true; postgres PSQL> select pg_reload_conf(); postgres PSQL> select 1; postgres PSQL> set log_planner_stats=true; postgres PSQL> select 1;

2018-09-24 22:33:57.789 CEST - 2 - 16055 - [local] - postgres@postgres LOG: PLANNER STATISTICS ! 0.000018 s user, 0.000007 s system, 0.000025 s elapsed 2018-09-24 22:33:57.789 CEST - 4 - 16055 - [local] - postgres@postgres STATEMENT: select 1;

postgres PSQL> alter user HR set log_planner_stats=true;

slide-20
SLIDE 20

02.04.19 PostgreSQL tuning for Oracle DBAs Page 27

Da Database optimizer

Executions Di Display the execu cutor time of an SQL statement

System level Session level User level Output into logfile postgresql.log

postgres PSQL> alter system set log_executor_stats=true; postgres PSQL> select pg_reload_conf(); postgres PSQL> select 1; postgres PSQL> set log_executor_stats=true; postgres PSQL> select 1;

2018-01-04 12:02:11.202 CET [7832] STATEMENT: select 1; 2018-01-04 12:02:11.220 CET [2119] LOG: EXECUTOR STATISTICS 2018-01-04 12:02:11.220 CET [2119] DETAIL: ! system usage stats: ! 0.000025 s user, 0.000000 s system, 0.000024 s elapsed

postgres PSQL> alter user HR set log_executor_stats=true;

slide-21
SLIDE 21

02.04.19 PostgreSQL tuning for Oracle DBAs Page 28

Da Database optimizer

Optimizer parameter Th There are several parameters to control the optimizer's choice to access the data It It is no not adv dvisabl ble e to cha hang nge e thes hese e optimi mizer er pa parame meter ers

They fake the optimizer estimations

> In fact they massively increase the cost, when turned off

They are there only for exceptions (bugs) When it is really required

> Set a parameter on the session level? > Set a parameter globally? postgres PSQL> show enable_[TAB_TAB] enable_bitmapscan enable_hashagg enable_indexonlyscan enable_material enable_nestloop enable_sort enable_gathermerge enable_hashjoin enable_indexscan enable_mergejoin enable_seqscan enable_tidscan postgres PSQL> set enable_hashagg=off;

slide-22
SLIDE 22

02.04.19 PostgreSQL tuning for Oracle DBAs Page 29

Da Database optimizer

The cost model Th There are several parameters that control cost calculations

Everything is relative to seq_page_cost When you are on SSDs: Is the cost of a random scan still 4 times as expensive as a sequential scan?

> Tr

Try to tune the ra random_page_cost par parame ameter Parameter Description Default Value seq_page_cost The cost of one (sequential) page fetch from disk 1 random_page_cost The cost of one random page fetch from disk 4 cpu_tuple_cost The cost of processing each row 0.01 cpu_index_tuple_cost The cost of processing each index entry 0.005 cpu_operator_cost The cost of processing each operator or function 0.0025

dbi

slide-23
SLIDE 23

02.04.19 Page 30 PostgreSQL tuning for Oracle DBAs

1 2 3 4 5 6

Ob Object statistics

Statistics overview pg_class pg_stats Gathering object statistics

slide-24
SLIDE 24

02.04.19 PostgreSQL tuning for Oracle DBAs Page 31

Ob Obje ject statis istic ics

Statistics overview Us Used to

  • provide st

statical in informatio ion ab about the data a in in a a rela latio ion

Numbers of rows Numbers of blocks Numbers of distinct values/nulls for a column The average rows width The most common values and their frequency Histogram bounds

Us Use catalog

  • g tables and views to
  • get

t ob

  • bje

ject t stati tisti tics

pg_class pg_stats

slide-25
SLIDE 25

02.04.19 PostgreSQL tuning for Oracle DBAs Page 32

Ob Obje ject statis istic ics

pg_class To

  • check statistics on
  • n the table level

relpages

: Number of 8K block

reltuples

: Number of rows

avgtupl

: Number of rows per block

pgbench PSQL> select relname,relpages,reltuples::int, reltuples/relpages avgtuple from pg_class where relname = 'pgbench_accounts'; ┌──────────────────┬──────────┬───────────┬──────────────────┐ │ relname │ relpages │ reltuples │ avgtuple │ ├──────────────────┼──────────┼───────────┼──────────────────┤ │ pgbench_accounts │ 163935 │ 10000000 │ 60.9997865007472 │ └──────────────────┴──────────┴───────────┴──────────────────┘

slide-26
SLIDE 26

02.04.19 PostgreSQL tuning for Oracle DBAs Page 33

Ob Obje ject statis istic ics

pg_stats To

  • check statistics on
  • n a col
  • lumn level

attname

: Column name

null_frac

: Fraction of column entries that are null

avg_width : Average width in bytes of column's entries n_distinct : Number of distinct values ( but negative values can exist, Ex. -1 indicates a unique column)

pgbench PSQL> select tablename,attname,null_frac,avg_width,n_distinct from pg_stats where tablename = 'pgbench_accounts'; ┌──────────────────┬──────────┬───────────┬───────────┬────────────┐ │ tablename │ attname │ null_frac │ avg_width │ n_distinct │ ├──────────────────┼──────────┼───────────┼───────────┼────────────┤ │ pgbench_accounts │ aid │ 0 │ 4 │ -1 │ │ pgbench_accounts │ bid │ 0 │ 4 │ 100 │ │ pgbench_accounts │ abalance │ 0 │ 4 │ 1 │ │ pgbench_accounts │ filler │ 0 │ 85 │ 1 │ └──────────────────┴──────────┴───────────┴───────────┴────────────┘

slide-27
SLIDE 27

02.04.19 PostgreSQL tuning for Oracle DBAs Page 34

Ob Obje ject statis istic ics

pg_stats - Histograms Mo Most t common values s and th their r frequency per r column

The value of 21 has a frequency of 0.0119667 The value of 68 has a frequency of 0.0117667 The formula to calculate the frequency: co

count(value)/total rows

pgbench PSQL> select most_common_vals,most_common_freqs from pg_stats where tablename = 'pgbench_accounts' and attname = 'bid';

  • [ RECORD 1 ]--

most_common_vals | {21,68,88,25,14,53,58,61,7,44,35… most_common_freqs | {0.0119667,0.0117667,0.0115,0.0114333,0.0114,0.0113333…

slide-28
SLIDE 28

02.04.19 PostgreSQL tuning for Oracle DBAs Page 35

Ob Obje ject statis istic ics

pg_stats - Histograms hi histogram_ m_bo bounds unds

These are groups of approximately the same number of values

> 103238-12 = 103226 > 213931-103238 = 110693 > 305537-213931 = 91606 > ...

The values in most_common_vals, if present, are omitted from this histogram calculation When the column data type does not have a "<" operator this column is null

pgbench PSQL> select histogram_bounds from pg_stats where tablename = 'pgbench_accounts' and attname = 'aid';

  • [ RECORD 1 ]--

histogram_bounds | {12,103238,213931,305537,410681,503952,610274,703390,801506,918762 …

slide-29
SLIDE 29

02.04.19 PostgreSQL tuning for Oracle DBAs Page 36

Ob Obje ject statis istic ics

pg_stats - Example hi histogram_ m_bo bounds unds - ex example

pgbench PSQL> select a,count(*) from t1 group by a order by count(*); a | count

  • -----+-------

1 | 1 2 | 1 3 | 1000 4 | 2000 5 | 2000 pgbench PSQL> select histogram_bounds from pg_stats where tablename = 't1'; histogram_bounds

  • {1,2}

pgbench PSQL> select most_common_vals,most_common_freqs from pg_stats where tablename = 't1'; most_common_vals | most_common_freqs

  • -----------------+---------------------------

{4,5,3} | {0.39984,0.39984,0.19992}

slide-30
SLIDE 30

02.04.19 PostgreSQL tuning for Oracle DBAs Page 38

Ob Obje ject statis istic ics

Gathering object statistics Th The fo formula wh when au autovac acuum ki kick cks in to to ga gather st statist stics Th The de defaul ult co configuration

vacuum threshold = autovacuum analyze threshold + autovacuum analyze scale factor * pg_class.reltuples pgbench PSQL> select name,setting from pg_settings where name in ('autovacuum_analyze_threshold' ,'autovacuum_analyze_scale_factor'); name | setting

  • --------------------------------+---------

autovacuum_analyze_scale_factor | 0.1 autovacuum_analyze_threshold | 50 (2 rows)

slide-31
SLIDE 31

02.04.19 PostgreSQL tuning for Oracle DBAs Page 40

Ob Obje ject statis istic ics

Gathering object statistics Ch Checki king for the last (auto)analyze and (auto)vacuum

pgbench PSQL> \x Expanded display is on. pgbench PSQL> select last_vacuum,last_autovacuum,last_analyze,last_autoanalyze from pg_stat_all_tables where relname = 'pgbench_accounts';

  • [ RECORD 1 ]----+------------------------------

last_vacuum | 2019-03-14 01:13:41.070397+00 last_autovacuum | NULL last_analyze | 2019-03-14 01:13:45.482932+00 last_autoanalyze | NULL

slide-32
SLIDE 32

02.04.19 PostgreSQL tuning for Oracle DBAs Page 41

Ob Obje ject statis istic ics

Gathering object statistics To

  • manually gather statistics

Analyze can operate on the table or on the column level

pgbench PSQL> analyze pgbench_accounts; ANALYZE pgbench PSQL> analyze pgbench_accounts(aid); ANALYZE pgbench PSQL> \h analyze Command: ANALYZE Description: collect statistics about a database Syntax: ANALYZE [ VERBOSE ] [ table_name [ ( column_name [, ...] ) ] ]

slide-33
SLIDE 33

02.04.19 Page 43 PostgreSQL tuning for Oracle DBAs

1 2 3 4 5 6

Ex Execution plan

EXPLAIN command PREPARE statements Skewed data distribution

slide-34
SLIDE 34

02.04.19 PostgreSQL tuning for Oracle DBAs Page 44

Ex Executio ion p plan lan

EXPLAIN command EX EXPLAIN IN is is the tool l to dis ispla lay executio ion plan lan an and var ario ious statis istic ics

explain is ready to use by default Inside psql explain with the analyze parameter will execute the statement

pgbench PSQL> \h explain -- help page of all explain commands pgbench PSQL> explain select * from t1 where a=1; QUERY PLAN

  • Index Only Scan using index1 on t1

(cost=0.28..8.30 rows=1 width=4) Index Cond: (a = 1) pgbench PSQL> explain analyze select * from t1 where a=1; QUERY PLAN

  • Index Only Scan using index1 on t1

(cost=0.28..8.30 rows=1 width=4) (rows=1) Index Cond: (a = 1) Heap Fetches: 1 Planning Time: 0.092 ms Execution Time: 0.123 ms

slide-35
SLIDE 35

02.04.19 PostgreSQL tuning for Oracle DBAs Page 45

Ex Executio ion p plan lan

PREPARE command Th The PR PREPARE co command allows the usage ge of bind variables Wh When th the same statement t is executed over and over again

Prepare the statement so it is parsed, analyzed, and rewritten only once Execution of a prepared statement only requires planning and execution Prepared statements only live in the session and are gone once the session ends

Ho How to pr prepa epare e a statemen ement To To re remove a a pr prepa epared ed st statement

Pgbench PSQL> deallocate my_stmt; Pgbench PSQL> prepare my_stmt as select * from t1 where a = $1; Pgbench PSQL> execute my_stmt ('1');

slide-36
SLIDE 36

02.04.19 PostgreSQL tuning for Oracle DBAs Page 46

Ex Executio ion p plan lan

Skewed data distribution Wh When data is unregularly distr tributed Th The optimizer should

For a=1 do a Seq Scan on table skewed_data (FULL TABLE SCAN) For all other values of a, it should use an index scan on (a)

pgbench PSQL> select a,count(*) from skewed_data group by a; a | count

  • ---+---------

1 | 99990 2 | 1 3 | 1 4 | 1 5 | 1 6 | 1 7 | 1 8 | 1 9 | 1 10 | 1 pgbench PSQL> select a,count(*) from skewed_data group by a; a | count

  • ---+---------

1 | 99990 2 | 1 3 | 1 4 | 1 5 | 1 6 | 1 7 | 1 8 | 1 9 | 1 10 | 1

slide-37
SLIDE 37

02.04.19 PostgreSQL tuning for Oracle DBAs Page 47

Ex Executio ion p plan lan

Skewed data distribution Wi With th lit litterals als it it wo works per perfec ectly bec becaus use pl planni nning ng ti time wi will be be ex executed fo for ea each va values

pgbench PSQL> explain select * from skewed_data where a = 1; QUERY PLAN

  • Seq Scan on skewed_data

(cost=0.00..29167.00 rows=99992 width=37) Filter: (a = 1) pgbench PSQL> explain select * from skewed_data where a = 2; QUERY PLAN

  • Index Only Scan using i1 on skewed_data

(cost=0.42..4.44 rows=1 width=4) Index Cond: (a = 2)

slide-38
SLIDE 38

02.04.19 PostgreSQL tuning for Oracle DBAs Page 48

Ex Executio ion p plan lan

Skewed data distribution Wh What ab about pr prepa epared ed st statements, , th the sa same :-) )

pgbench PSQL> prepare my_stmt as select * from skewed_data where a = $1; pgbench PSQL> explain analyze execute my_stmt ('2'); QUERY PLAN

  • Index Only Scan using i1 on skewed_data

(cost=0.42..8.48 rows=3 width=6) (rows=1) Index Cond: (a = 2) Planning time: 0.155 ms Execution time: 0.083 ms pgbench PSQL> explain analyze execute my_stmt ('1'); QUERY PLAN

  • Seq Scan on skewed_data

(cost=0.00..29167.00 rows=99990 width=6) (rows=99991) Filter: (a = 1) Rows Removed by Filter: 9 Planning time: 0.135 ms Execution time: 217.040 ms

slide-39
SLIDE 39

02.04.19 PostgreSQL tuning for Oracle DBAs Page 49

Ex Executio ion p plan lan

Skewed data distribution Ta Take care : Ge Generic pl plans ns wi with th pr prepa epared ed st statements

Usually a prepared statement is re

re-pl planne nned with every execution

But after 5

5 execu cutions when the costs (including planning overhead) is more expensive than a generic plan

> A generic plan will be used pgbench PSQL> explain analyze execute my_stmt ('1'); -- repeat that 5 times more -- QUERY PLAN

  • Seq Scan on skewed_data

(cost=0.00..29167.00 rows=99990 width=37) (actual time=0.014..231.884 rows=99991 loops=1) Filter: (a = 1) pgbench PSQL> explain analyze execute my_stmt ('1'); QUERY PLAN

  • Index Scan using i1 on skewed_data

(cost=0.42..11300.93 rows=33333 width=37) (actual time=0.115..355.414 rows=99991 loops=1) Index Cond: (a = $1)

slide-40
SLIDE 40

02.04.19 PostgreSQL tuning for Oracle DBAs Page 50

Ex Executio ion p plan lan

Skewed data distribution Ge Generic p plans

From now on only the generic plan will be used for the lifetime of the prepared statement You can see if a generic or custom plan is used in the explain output

> $x means this is a generic plan > A custom plan will show the actual value(s)

Sol Solution

  • n abou
  • ut ou
  • ur issue?

?

Don't use PREPARE statement

slide-41
SLIDE 41

02.04.19 Page 51 PostgreSQL tuning for Oracle DBAs

1 2 3 4 5 6

Co Conclusi sion

slide-42
SLIDE 42

02.04.19 PostgreSQL tuning for Oracle DBAs Page 52

Co Conclusion

Th The most important with Performance Tuning

To be able to exactly locate the problem

Yo You don’t have to

Create all kind of table and index types, define each instance parameter

Bu But you have to kn know

The available table/index types and how they access data What can be configured at instance/session/query level

Yo Your knowledge is strengthened by

Documentation Tests on small testcases Experience (but experience is linked to one version and one application)

slide-43
SLIDE 43

02.04.19 PostgreSQL tuning for Oracle DBAs Page 53

Co Conclusion

Wh Which is th the main missing performance featu ture wi with th Postg tgreSQL ? It It ha has no no Sha hared ed Pool, Ses ession n informa mation n is onl nly cached hed in n the he ses ession n it sel elf dbi dbi InS InSite e PostgreS eSQL QL Per erforma manc nce e Tuni uning ng worksho hop p

22-23 May in Basel 17-18 December in Zürich

But using a connection pool, with the only required parallel sessions The chance to have it cached will be high

slide-44
SLIDE 44

Any y questions?

Please do ask!

We would love to boost your IT-Infrastructure Ho How a about y you?

Zürich Basel Delémont Nyon 02.04.19 Page 54 PostgreSQL tuning for Oracle DBAs