SQL EXISTS - optimalizační trik

publikováno: 12.3.2016

Další optimalizační trik, který v poslední době s oblibou používám, je EXISTS. Mám dvě tabulky - artifacts_detail (140 tisíc záznamů) a plugins (30 tisíc záznamů) a potřebuji získat záznamy z tabulky "artifacts_detail", které jsou obsažené v tabulce "plugins" (je to propojené přes sloupce group_id, artifact_id a version a já to potřebuji spojit přes group_id a artifact_id ... v tabulce "plugins" je řada verzí záznamů). Možnosti:

A) INNER JOIN (9 300 ms):

select distinct a.*
from plugins p join artifacts_detail a
on p.group_id = a.group_id and p.artifact_id = a.artifact_id

B) SPOJENÍ VE WHERE (9 800 ms):

select distinct a.*
from plugins p, artifacts_detail a
where p.group_id = a.group_id and p.artifact_id = a.artifact_id

C) EXISTS (500 ms):

select a.*
from artifacts_detail a
where exists (select 1 from plugins p 
   where p.group_id = a.group_id and p.artifact_id = a.artifact_id)

 

Reference

Školení bych doporučil všem lidem, kteří se chtějí dozvědět něco o DB. Na školeni jsem přišel, jako úplný nováček, co se týče práci s DB a odcházel plný dojmů a

Ondřej

Osobně jsem trošku stále váhající, jestli a jak moc SQL použít. Ale určitě hlavní je to, že se teď už tolik nebojím. Je to pro mě začátek dlouhé cesty. Osobně

Robert

Zajímavé školení, které vhodně kombinovalo teorii a praxi.

Ministerstvo financí
Jan


Novinky

22.3.2019: Termíny SQL školení léto 2019
Nové termíny!!!

3.1.2018: Oracle XE 12c nebude, místo toho bude Oracle XE 18c
V roce 2018 nás čeká nová XE verze a nové verzování

4.4.2017: SAP HANA & Veverka (SQuirrel SQL)
Oficiální SAP HANA studio funguje, ale je hrozně pomalé. Další z nástrojů, kde je možné rozchodit SAP HANA je Veverka (SQuirrel SQL)