11
PAT, MAT IN 40 SQL-OV Marko Antloga [email protected] Boštjan Begelj [email protected] Ljubljana, 2.junij.2004

Pat, Mat  In  40 SQL-ov

  • Upload
    eugene

  • View
    47

  • Download
    3

Embed Size (px)

DESCRIPTION

Pat, Mat  In  40 SQL-ov. Kje so izvorni podatki, kako jih prenašamo v podatkovno skladišče? Kaj bi storili drugače, če bi vedeli to kar vemo danes? Vidne in skrite rezerve (časa in prostora). Kdo je ubil Lauro Palmer?. 113 Dimenzij in 15 Dejstev 951 Polj 97 GB 44 PL/SQL programov - PowerPoint PPT Presentation

Citation preview

Page 1: Pat, Mat  In  40 SQL-ov

PAT, MAT IN 40 SQL-OV

Marko Antloga

[email protected]

Boštjan Begelj

[email protected]

Ljubljana, 2.junij.2004

Page 2: Pat, Mat  In  40 SQL-ov

2

Pat, Mat  In  40 SQL-ov

• Kje so izvorni podatki, kako jih prenašamo v podatkovno skladišče?

• Kaj bi storili drugače, če bi vedeli to kar vemo danes?

• Vidne in skrite rezerve (časa in prostora).

• Kdo je ubil Lauro Palmer?

Page 3: Pat, Mat  In  40 SQL-ov

3

Nekaj statistike za uvod

113 Dimenzij in 15 Dejstev951 Polj 97 GB 44 PL/SQL programovOracle 8.1.7OpenVMS 7.3150.000 zapisov dnevno

Page 4: Pat, Mat  In  40 SQL-ov

4

Polnjenje iz zunanjih datotek

Page 5: Pat, Mat  In  40 SQL-ov

5

Polnjenje iz drugih urejenih virov podatkov (manjše baze, preglednice…)

Page 6: Pat, Mat  In  40 SQL-ov

6

Polnjenje iz relacijske baze (transakcijskega sistema)

Page 7: Pat, Mat  In  40 SQL-ov

7

Običajen PL/SQL stavek

DECLAREBEGINEND

DECLARE ime_proc VARCHAR2 (20) := '&1';

CURSOR c_cenik_2 (p_cenik_id NUMBER) IS SELECT fcenik0_cenik0_id,

apg_cenik_pd.artikel(fcenik0_cenik0_id) FROM kis_fcenik0_cenik0 WHERE fcenik0_cenik0_id = p_cenik_id FOR UPDATE;

PROCEDURE kis_fcenik0_cenik0_insert (ddatspr_danlet_ds_in IN kis_fcenik0_cenik0.ddatspr_danlet_ds%TYPE ... ) IS BEGIN INSERT INTO kis_fcenik0_cenik0 ... END kis_fcenik0_cenik0_insert;

Page 8: Pat, Mat  In  40 SQL-ov

8

BEGIN FOR i IN c_cenik_1 LOOP st_select := st_select + 1; FOR j IN c_cenik_2 (i.cenik_id) LOOP DELETE FROM kis_fcenik0_cenik0 WHERE CURRENT OF c_cenik_2; st_update := st_update + 1; END LOOP; st_insert := st_insert + 1; END LOOP;

cas_zacetka_prog := SYSDATE; ime_sistema := tpg_apl001_kas.gl_name; tpg_floging_loging.p001 (izvprg_o); -- INSERT /*+ APPEND + PARALLEL*/ INTO kas_dmkzkup_mkzkup (...) SELECT /*+ PARALLEL(kis_dmkzkup_mkzkup,120) */ ... FROM kis_dmkzkup_mkzkup; -- st_insert := SQL%ROWCOUNT; tpg_apl001_kas.trunc_table ('kis_dmkzkup_mkzkup'); -- dbms_izpis (ime_cilja); cas_konca_stavka := SYSDATE;

END;

Page 9: Pat, Mat  In  40 SQL-ov

9

Vmesno območje (ki ga varujejo modre čelade)

• Označevanje že prenesenih podatkov

• Ključi v transakcijski bazi in podatkovnem skladišču

• Nadzor prenosa

• Popravki zgodovine oz. dodajanje atributov

Page 10: Pat, Mat  In  40 SQL-ov

10

Vidne in skrite rezerve (časa in prostora)

• Paralelno izvajanje več SQL stavkov

• Polnjenje tabel

• Particioniranje tabel

• Pregled indeksov

• Uporaba agregatov

Page 11: Pat, Mat  In  40 SQL-ov

11

ZAKLJUČEK