110 likes | 263 Vues
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
E N D
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 Oracle 8.1.7 OpenVMS 7.3 150.000 zapisov dnevno Nekaj statistike za uvod
Polnjenje iz drugih urejenih virov podatkov (manjše baze, preglednice…)
Običajen PL/SQL stavek DECLARE BEGIN END 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;
… 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;
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
Vidne in skrite rezerve (časa in prostora) • Paralelno izvajanje več SQL stavkov • Polnjenje tabel • Particioniranje tabel • Pregled indeksov • Uporaba agregatov