Novinky v PostgreSQL 9.4. Tomáš Vondra, 2ndQuadrant

Podobné dokumenty
PostgreSQL Novinky (a JSONB) Tomáš Vondra, GoodData (tomas.vondra@gooddata.com) (tomas@pgaddict.

Materializované pohledy

PG 9.5 novinky ve vývoji aplikací

INDEXY JSOU GRUNT. Pavel Stěhule

Operátory ROLLUP a CUBE

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Databázové systémy. Cvičení 6: SQL

Optimalizace dotazů a databázové transakce v Oracle

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Paralelní dotazy v PostgreSQL 9.6 (a 10.0)

TimescaleDB. Pavel Stěhule 2018

Databáze I. 5. přednáška. Helena Palovská

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

RNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

IDS optimalizátor. Ing. Jan Musil, IBM ČR Community of Practice for

Jazyk SQL databáze SQLite. připravil ing. petr polách

Bi-Direction Replication

Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

SQL v14. 4D Developer konference. 4D Developer conference 2015 Prague, CZ Celebrating 30 years

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Databáze I. Přednáška 6

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Databáze SQL SELECT. David Hoksza

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

Sada 1 - PHP. 14. Úvod do jazyka SQL

Databázové systémy I

SQL injection jak ji možná neznáte Roman Kümmel

8.2 Používání a tvorba databází

Verzování a publikace dat na webu za pomoci PostgreSQL

Databázové systémy Cvičení 5.2

KIV/ZIS cvičení 5. Tomáš Potužák

Tabulka fotbalové ligy

Multi-dimensional expressions

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports

Fakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná

Databáze 2011/2012 SQL SELECT II. RNDr.David Hoksza, Ph.D.

SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL)

Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D.

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

Použití PostgreSQL v. P2D Martin Swiech

Virtual Private Database (VPD) Jaroslav Kotrč

4IT218 Databáze. 4IT218 Databáze

O Apache Derby detailněji. Hynek Mlnařík

Čteme EXPLAIN. CSPUG, Praha. Tomáš Vondra Czech and Slovak PostgreSQL Users Group

XMW4 / IW4 Pokročilé SELECT dotazy. Štefan Pataky

Databáze I. Přednáška 7

Dotazovací jazyky I. Datová krychle. Soběslav Benda

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou

KMI / TMA Tvorba mobilních aplikací. 6. seminář ZS 2016/2017 Středa 13:15-15:45

RELAČNÍ DATABÁZOVÉ SYSTÉMY

Obsah. SQL konstrukce select join Rekurze (rekurzivní with) Analytické funkce, group by Pivoting

Databázové systémy I

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

Databázové systémy a SQL

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

1. Relační databázový model

6. blok část B Vnořené dotazy

Vzorové příklady SQL. Tabulka: Kniha CREATE TABLE kniha (id INTEGER, název VARCHAR(50), PRIMARY KEY (id))

SQL SQL-SELECT. Informační a znalostní systémy. Informační a znalostní systémy SQL- SELECT

PostgreSQL. Podpora dědičnosti Rozšiřitelnost vlastní datové typy. Univerzální nasazení ve vědecké sféře

Oracle XML DB. Tomáš Nykodým

Jazyk SQL 3 - DML, DDL, TCL, DCL

Architektury databázových

Úvod do databázových systémů

Zápisování dat do databáze

- sloupcové integritní omezení

Vkládání, aktualizace, mazání

Administrace Oracle. Práva a role, audit

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1

Použití databází na Webu

Jak ušetřit místo a zároveň mít data snadno dostupná. David Turoň

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

Dotazy v SQL. Výraz relační algebry R1( )[A1,A2,...,Aj] lze zapsat takto: SELECT A1,A2,...,Aj FROM R1 WHERE. Výraz (R1, R2... Rk)( )[A1,A2,...

Dotazování v relačním modelu a SQL

První pomoc pro DBA. administrátory CIDUG. Milan Rafaj IBM Česká republika

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný

Jazyk SQL 2. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c M.Valenta, 2011 BI-DBS, ZS 2011/12

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

Jazyk SQL slajdy k přednášce NDBI001

6. SQL složitější dotazy, QBE

Novinky v IBM Notes a Domino. CubeTeam Dan Vrána

Novinky ve starém dobrém SQL světě OpenAlt, 2014/11/02

Administrace Oracle Práva a role, audit. Kukhar Maria

Databáze I. Přednáška 4

cstore_fdw column store pro PostgreSQL Prague PostgreSQL Developer Day 2015 Jan Holčapek

MySQL sežere vaše data

Mechanismus obarvení řádků browse

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června krovacek@students.zcu.cz

DUM 15 téma: Příkazy pro řízení přístupu

Osnova je orientační pro FIT, u FEKTu se dá předpokládat, že budou zohledněny předchozí znalosti studentů, kde většina s databází nikdy přímo

Úvod do databázových systémů

Administrace, Monitoring. Pavel Stěhule P2D2, Praha 2016

Transkript:

Novinky v PostgreSQL 9.4 Tomáš Vondra, 2ndQuadrant (tomas@2ndquadrant.com) http://blog.pgaddict.com (tomas@pgaddict.com)

vývojáři

JSONB

aggregate expressions (FILTER) SELECT a, SUM(CASE WHEN b < 10 THEN c ELSE NULL END) AS pod_10, SUM(CASE WHEN b >= 10 THEN c ELSE NULL END) AS nad_10 FROM tabulka GROUP BY a; SELECT a, SUM(c) FILTER (WHERE b < 10) AS pod_10, SUM(c) FILTER (WHERE b >= 10) AS nad_10 FROM tabulka GROUP BY a;

ordered-set aggregates pořadí agregovaných hodnot často nepodstatné (MIN, MAX, SUM, ) někdy na něm ale záleží (array_agg, string_agg, ) SELECT SUM(b ORDER BY c), -- zbytečné třídění ARRAY_AGG(b ORDER BY c) -- setříděné pole FROM tabulka; ( Toto není ordered-set aggregate! )

ordered-set aggregates některé agregační funkce pořadí vyžadují z definice (jinak prostě nedávají smysl) rank, percentil,... direct / aggregate argumenty (rozdíl) -- medián hodnot b SELECT PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY b) FROM tabulka GROUP BY a;

ordered-set aggregates některé agregační funkce pořadí vyžadují z definice (jinak prostě nedávají smysl) rank, percentil,... direct / aggregate argumenty (rozdíl) SELECT a, PERCENTILE_DISC(ARRAY[0.25, 0.5, 0.75]) WITHIN GROUP (ORDER BY b) AS median_b FROM tabulka GROUP BY a; ( proprietární rozšíření )

hypotetical aggregates Kam by se zařadil hypotetický řádek? pořadí rank(..), dense_rank(..) relativní (0, 1) percent_rank(..), cume_dist(..) SELECT a, rank('xyz') WITHIN GROUP (ORDER BY b), dense_rank('xyz') WITHIN GROUP (ORDER BY b), percent_rank('xyz') WITHIN GROUP (ORDER BY b) FROM tabulka GROUP BY a;

automaticky updatovatelné pohledy pro jednoduché pohledy lze překládat DML příkazy jedna tabulka ve FROM, bez agregací / množinových operací, apod. pouze jednoduché odkazy na sloupce tabulky nesmí být označený pomocí security_barrier od 9.4 lze ve views používat výrazy, konstanty, volání funkcí tyto sloupce samozřejmě nelze měnit CREATE VIEW zamestnanci_view AS SELECT emp_id, dept_id, (salary*0.6) AS cista_mzda FROM zamestnanci_tabulka WHERE dept_id IN (10, 20);

automaticky updatovatelné pohledy řádky odfiltrované přes WHERE nelze updatovat řádek ale může vypadnout WITH CHECK OPTION tomu zabrání další krok na cestě k Row Level Security (řízení přístupu k řádkům) CREATE VIEW zamestnanci_view AS SELECT id_zamestnance, id_oddeleni, (plat*0.6) AS cista_mzda FROM zamestnanci_tabulka WHERE id_oddeleni IN (10, 20) WITH CHECK OPTION; UPDATE zamestnanci_view SET id_oddeleni = 30;

admini

MATERIALIZED VIEWS CREATE MATERIALIZED VIEW my_view AS SELECT ; CREATE UNIQUE INDEX my_index ON my_view ( ); REFRESH MATERIALIED VIEW my_view; REFRESH MATERIALIED VIEW CONCURRENTLY my_view;

SET TABLESPACE... ALTER TABLE ALL IN TABLESPACE tablespace1 OWNED BY uzivatel SET TABLESPACE tablespace2 [NOWAIT]; ALTER INDEX... ALTER VIEW... ALTER MATERIALIZED VIEW...

Vylepšení GIN indexů pro hodnoty složené z částí (pole, slova, ) index se skládá z položek key1 => [rowid1, rowid2, rowid3, ] key2 => [rowid10, rowid20, rowid30, ] v podstatě bitmapové indexy (zvláštně kódované) jde použít na skalární typy (extenze btree_gin) 9.4 přináší dvě významná vylepšení komprese posting listů (seznam odkazů na řádky) fast scan (dotazy typu častý & vzácný výrazně rychlejší)

ALTER SYSTEM dosud bylo nutné přímo editovat postgresql.conf vim /var/lib/pgsql/9.1/data/postgresql.conf nově je možné toho dosáhnout přímo z databáze ALTER SYSTEM SET work_mem = '128MB'; vytvoří se nový soubor s konfigurací (include) postgresql.auto.conf stále nutný explicitní reload / restart SELECT pg_reload_conf();

Konfigurační parametry autovacuum_work_mem odděleno z maintenance_work_mem huge_pages Linuxové systémy s velkým objemem RAM wal_log_hints standardně se nelogují, ale občas problémy (replikace, pg_rewind) (maintenance_)work_mem / effective_cache_size navýšení default hodnot (4x)

pg_stat_statements texty dotazů se ukládají do souboru odstraňuje limit na délku dotazu šetří sdílenou paměť načítání bez textů (optimalizace motorovacích nástrojů) SELECT * FROM pg_stat_statements(false); doplnění query ID (interní hash dotazu) identifikace dotazu (monitorovací nástroje) nestabilní mezi major verzemi / platformami

replikanti

Replikace a recovery přesun tablespaces v pg_basebackup time-delayed standby pg_stat_archiver

Infrastruktura základ logické replikace (changeset extraction) replikační sloty background workers

Spousta dalšího... 9.4 release notes http://www.postgresql.org/docs/9.4/static/release-9-4.html článek od Pavla Stěhule (květen 2014) http://www.root.cz/clanky/postgresql-9-4-transakcni-sql-json-databaze/ What's new in PostgreSQL 9.4 (Magnus Hagander) http://www.hagander.net/talks/postgresql94_2.pdf PostgreSQL Conference Europe 2014 (říjen, Madrid) https://wiki.postgresql.org/wiki/postgresql_conference_europe_talks_2014