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

Podobné dokumenty
Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307

Jalapeño: pekelně ostrá Java persistence v Caché. Daniel Kutáč Senior Sales Engineer

FIREBIRD relační databázový systém. Tomáš Svoboda

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

FRED & PostgreSQL. CZ.NIC, z.s.p.o. Jaromír Talíř <jaromir.talir@nic.cz>

Semináˇr Java X JDBC Semináˇr Java X p.1/25

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Databáze II. 1. přednáška. Helena Palovská

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Použití databází na Webu

SQL - trigger, Databázové modelování

B Organizace databáze na fyzické úrovni u serveru Oracle

Oracle XML DB. Tomáš Nykodým

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

Business Intelligence

Optimalizace dotazů a databázové transakce v Oracle

Migrace CIDUG. Ing. Pavel Krutina

Novinky v Microsoft SQL Serveru RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

Archivace relačních databází

Ukládání a vyhledávání XML dat

Přehled systému Microsoft SQL Server. Komu je kniha určena Struktura knihy Nejvhodnější výchozí bod pro čtení knihy Konvence a struktura knihy

Databázová řešení IBM

1. Webový server, instalace PHP a MySQL 13

Struktura pamětí a procesů v DB Oracle. Radek Strnad

Informační systémy 2008/2009. Radim Farana. Obsah. Základní principy XML

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

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

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

Stěhování aplikací. Michal Tomek, Sales Manager

Databáze II. 2. přednáška. Helena Palovská

J. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu

Administrace Oracle. Práva a role, audit

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

Databázové a informační systémy

Databáze SQL SELECT. David Hoksza

Fyzické uložení dat a indexy

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

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

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

STARÁ DOBRÁ JAVA A PERSISTENCE S CACHÉ

Nové jazykové brány do Caché. Daniel Kutáč

01. Kdy se začala formovat koncept relačních databází (Vznik relačního modelu, první definice SQL)? a) 1950 b) 1960 c) 1970 d) 1980

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

Optimalizace plnění a aktualizace velkých tabulek. Milan Rafaj, IBM

VZOROVÝ STIPENDIJNÍ TEST Z INFORMAČNÍCH TECHNOLOGIÍ

RELAČNÍ DATABÁZE. Cíl:

Které příkazy SQL lze v PL/SQL procedurách a funkcích volat bez omezení a které s omezením? Jak lze v PL/SQL deklarovat datový typ?

4. lekce Přístup k databázi z vyššího programovacího jazyka

ÚVOD DO DATABÁZÍ. Metodické listy pro předmět

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK

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

Transakce a zamykání. Administrace MS SQL Serveru (NDBI039) Pavel Hryzlík

Popis logování v aplikačním serveru

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

TimescaleDB. Pavel Stěhule 2018

UAI/612 - Cloudová Řešení. Technologie

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Audit DB. Referát. Vypracoval: Zdeněk Doležal MFF UK Praha 11/5/06

KAPITOLA 1 Představení platformy Microsoft SQL Server 2008

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19

Databázové systémy, MS Access. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1130_Databázové systémy, MS Access_PWP

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

Programování a implementace Microsoft SQL Server 2014 databází

ŠKOLENÍ PROGRAMOVACÍHO JAZYKA JAVA JAVA - ZÁKLADY

Kód v databázi. RNDr. Ondřej Zýka

InterSystems Caché Post-Relational Database

A5M33IZS Informační a znalostní systémy. O čem předmět bude? Úvod do problematiky databázových systémů

TÉMATICKÝ OKRUH TZD, DIS a TIS

Virtual Private Database (VPD) Jaroslav Kotrč

Ukázka knihy z internetového knihkupectví

Microsoft Azure Workshop

Základní informace: vysoce komfortnímu prostředí je možné se systémem CP Recorder efektivně pracovat prakticky okamžitě po krátké zaškolení.

Nerelační databázové modely. Helena Palovská

Zkušební test. Kdy se začala formovat koncept relačních databází (Vznik relačního modelu, první definice SQL)? a) 1950 b) 1960 c) 1970 d) 1980

NSS - Cache 5. LECTURE MARTIN TOMASEK

IB M Databázové platform y

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA

Sísyfos Systém evidence činností

Vladimír

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

C# - Databáze úvod, ADO.NET. Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí

Vytváření uživatelských datových typů a funkcí v Javě

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

TÉMATICKÝ OKRUH Softwarové inženýrství

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

IBM TRIRIGA Application Platform Verze 3 Vydání 4.2. Příručka instalace a implementace

13. blok Práce s XML dokumenty v databázi Oracle

Jak efektivně ochránit Informix?

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

M Administrace Microsoft SQL Server Popis: Absolvent kurzu bude umět: Požadavky pro absolvování kurzu: Kurz určen pro: Literatura:

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

IBM InfoSphere Guardium - ochrana databází

Úvod do Web Services

Implementace dávkových operací

Knot DNS Resolver. Modulární rekurzivní resolver. Karel Slaný

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

Operátory ROLLUP a CUBE

Možnosti propojení Lotus Notes/Domino a jiných systémů. Ondřej Fuxa Your System spol. s r.o.

Transkript:

O Apache Derby detailněji Hynek Mlnařík

Agenda Historie Vlastnosti Architektura Budoucnost

Historie 1997 Cloudscape Inc. - JBMS 1999 Informix Software, Inc. odkoupila Cloudscape, Inc. 2001 IBM odkoupila databázové produkty Informixu 2004 IBM převedla Cloudscape pod Apache DB Derby URL: http://db.apache.org/derby/ 2006 Sun distribuuje Derby pod názvem Java DB 2009 Sun byl koupen Oraclem. Co bude s Derby dál?

Vlastnosti Implementováno v čisté Javě, primárním API je JDBC Velikostí malá vnořitelná (embeddable) SQL databáze Možnosti použití: vnořené (embedded) jeden jar (~ 2,5 MB), JDBC server přístup přes síť (~ 230k) Podpora distribuovaných transakcí (XA) Masový import a export dat, XML, podpora JMX Šifrování, Security Manager, SSL/TLS Podpora SQL podobná jako v ostatních relačních DB Procedury a funkce v Javě

Architektura Databázové jádro obsaženo v embedded ovladači Architektura mikrojádra Monitor zajišťuje volbu konkrétní implementace a provázání komponent Vrstvy např. JDBC 2.0 pro JDK 1.3, JDBC 3.0 pro JDK 1.4, JDBC Rozhraní 4.0 pro aplikace pro JDK 5 Zamykání, chybový výstup, obecná cache Vyhodnocuje přeložené SQL příkazy Překládá SQL příkazy z textové podoby do interní reprezentace Poskytuje přístup k řádkům tabulek a indexů Přístup k logickým stránkám databázového souboru

Úložiště Podpora transakcí (ACID) Žurnálování (write-ahead log), skupinový COMMIT (zapíše několik transakcí naráz) On-line zálohování Obnova i pomocí roll-forward ze žurnálu Asynchronní replikace s ručním nastavením failover Možnost databází v.jar nebo na HTTP serveru Formát DB souborů nezávislý na platformě Indexy typu B-strom, až 16 sloupců na klíč

Optimalizace plánu SQL dotazu Nejprve několik optimalizací nezávislých na ceně zploštění zanořených SELECTů u IN, EXISTS a ANY zploštění pohledů (VIEWs) snaha o vyhnutí se řazení, např. při DISTINCT a další Optimalizátor pracuje s odhady cen, které by měly odpovídat časové náročnosti procházení tabulek je výhodnější použít index nebo čtení celé tabulky? pořadí, v němž se budou vyhodnocovat mezivýsledky

Kompilace SQL dotazu SQL dotaz optimalizace plánu generování bytecode nahrání bytecode vytvoření instance spuštění dotazu Výhody: Vygenerovaný bytecode může být optimalizován JIT Odpadá zdržení při volání procedur a funkcí z SQL Nevýhody: Tvorba a kompilace plánu je drahá Derby používá cache

Triggery CREATE TRIGGER name { AFTER NO CASCADE BEFORE } { INSERT DELETE UPDATE [ OF columnname [, columnname]* ] } ON tablename [ referencingclause ] [ FOR EACH { ROW STATEMENT } ] [ MODE DB2SQL ] triggerbody Na úrovni příkazu nebo řádku V těle triggeru může být SQL příkaz nebo volání Javy BEFORE triggery nesmí ve svém těle měnit data Provedení řádkového triggeru zvýší čas cca o 15% Provedení příkazého triggeru zvýší čas cca o 25%

BLOB a CLOB Přítomnost BLOBu v tabulce snižuje výkonnost i těch SELECTů, které s BLOBovými sloupci nepracují Čím větší BLOBy, tím pomalejší práce s tabulkou Pokud je BLOB nastaven na NULL, nezdržuje 30 Kolikrát je vyhodnocení pomalejší než stejný dotaz z tabulky bez BLOBu 25 20 15 10 5 0 SELECT neobsahující BLOB ve výběru SELECT obsahující BLOB ve výběru 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Počet řádků ve výsledku [v tisících]

Plánováno do verze 10.6 Podpora sekvencí Dlouho žádaná vlastnost (2005, JIRA: DERBY-712) Již téměř hotovo Zaznamenávání rozhodnutí optimalizátoru (EXPLAIN) Údajně hotové rozšíření (2007, JIRA: DERBY-2487) Při testování ale vykazovalo chyby Na vyžádání se začnou zaznamenávat statistiky dotazů do speciálních tabulek v zadaném schematu

Cizí zkušenosti PaperCut Software, 2008: Statistiky neaktualizovány automaticky (JIRA: DERBY-3788) Fragmentace databáze po DELETE Pro velké databáze je vhodné: Zvýšit velikost stránky Zvýšit velikosti cache stránek Cache pro hash indexy optimalizátoru je v základním nastavení malá

Shrnutí Relační databáze napsaná v čisté Javě Architektura mikrojádra Kompilace a optimalizace dotazů Pomalejší práce s BLOBy Přestože Derby není úplně dokonalá, našim účelům vyhovuje.

Otázky, připomínky