37
Partīcija ar dimensijām Partīcija ar dimensijām Partīcija ar dimensijām Virtuālu daudzdimensiju datu masīvu veidošana Virtuāla daudzdimensiju datu bāze Iespējama paralēlā apstrāde tabula tabula tabula tabula tabula Likumi kuba šūnu vērtību korekcijai un jaunu šūnu ar vērtībām 1

datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

Embed Size (px)

Citation preview

Page 1: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

Partīcija ar dimensijām

Partīcija ar dimensijām

Partīcija ar dimensijām

Virtuālu daudzdimensiju datu masīvu veidošana

Virtuāla daudzdimensiju datu bāze

Iespējama paralēlā apstrāde

tabula tabula tabula

tabula tabula

Likumikuba šūnu vērtību korekcijai un jaunu

šūnu ar vērtībām izveidošana

1

Page 2: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

SQL MODEL konstrukcija virtuālas daudzdimensiju datu bāzes veidošanai

select ...from ...where ...MODEL [PARTITION BY (<kolonas>)] DIMENSION BY (<kolonas>) MEASURES (<kolonas>) [RULES] (<likums>, <likums>,.., <likums>)

2

Page 3: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

Model konstrukcijas iespējas SELECT vaicājumos1

1. SQL izteiksme MODEL veido daudzdimensiju masīvu no vaicājuma rezultātiem un tad pielieto likumus šā masīva elementiem, lai aprēķinātu jaunas vērtības.

2. Likumi var būt gan vienkāršas aritmētiskas izteiksmes, gan izteiksmes ar rekursijas izmantošanu.

3. Vaicājuma kolonas var tikt apvienotas un attēlotas trijos veidos:1) partīcijās – rezultātu loģiski bloki paralēlu darbību iespējas nodrošināšanai;2) dimensijās – multidimensiju masīvu veidošanai partīcijās;3) mēri vai fakti (measures) – pētāmo datu vērtības.

1 https://docs.oracle.com/database/121/DWHSG/sqlmodel.htm#DWHSG-GUID-538F78AA-9BF3-46F2-93D1-39A8739B3237

3

Page 4: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

Likumu (rules) izmantošana 1. The MODEL clause enables you to specify rules to manipulate the measure values of the cells in the multi-dimensional array defined by partition and dimension columns. 2. Rules access and update measure column values by directly specifying dimension values. 3. The MODEL clause is a scalable and manageable way of computing business models in the database.

The top segment shows the concept of dividing a typical table into partition, dimension, and measure columns. The middle segment shows two rules that calculate the value of Prod1 and Prod2 for the year 2002. Finally, the third part shows the output of a query that applies the rules to such a table with hypothetical data. The unshaded output is the original data as it is retrieved from the database, while the shaded output shows the rows calculated by the rules. Note that results in partition A are calculated independently from results of partition B.

4

Page 5: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

SQL Model konstrukcijas sistakse

MODEL[<global reference options>][<reference models>][MAIN <main-name>] [PARTITION BY (<cols>)] DIMENSION BY (<cols>) MEASURES (<cols>) Vērtību kopa, kas tiek modificēta vai radīta ar modeli. [<reference options>] [RULES] Izteiksmes, kas piekārto vērtības mēriem.<rule options> (<rule>, <rule>,.., <rule>)

<global reference options> ::= <reference options> <ret-opt> <ret-opt> ::= RETURN {ALL| UPDATED} ROWS <reference options> ::= [IGNORE NAV | Ignorē skaitliskās šūnas, kuru vērtība = 0.[KEEP NAV] Šūnas ar nemainīgām vērtībām.[UNIQUE DIMENSION | Partition By un Dimension By unikāli identificē katru šūnu modelī. UNIQUE SINGLE REFERENCE] Partition By un Dimension By unikāli identificē katru atsauci likumu labajā pusē.

<rule options> ::= [UPDATE | Modificē esošo šūnu vērtības. UPSERT | Modificē eksistējošo šūnu (cells) vērtības. Ja šūnu nav, tās tiek izveidotas. UPSERT ALL] Plašākas likuma notācijas. [AUTOMATIC ORDER | Likumi tiek apstrādāti viņu loģiskās atkarības kārtībā. SEQUENTIAL ORDER] Likumi tiek apstrādāti viņu izveidošanas kārtībā. [ITERATE (<number>) [UNTIL <condition>]] <reference models> ::= REFERENCE ON <ref-name> ON (<query>) DIMENSION BY (<cols>) MEASURES (<cols>) <reference options>

Daudzdimensiju kuba šūnu atsauces (references)

5

Page 6: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

1. Dimesiju simboliskās (symbolic) atsauces. Tiek lietotas Būla operācijas:PEĻŅA [GADS >=2015]

2. Dimensiju pozicionālās (positional) atsauces. Konstantas vērtības vai konstantas izteiksmes lietošana:PEĻŅA['maize', 2011]

6

Page 7: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

Likumu izteiksmju pieraksta noteikumi2

1. Vienas šūnas atsauces:PEĻŅA[PRODUKTS='maize', GADS =2011] = 1.5PEĻŅA['maize', 2011] = 1.5PEĻŅA['maize', 2011] = PEĻŅA['maize', 2010]*1.5

2. Atsauce uz vairākām šūnām:PEĻŅA['maize', 2011] = MAX(PEĻŅA)['maize', GADS BETWEEN 2008 and 2010]*1.5PEĻŅA['maize', GADS >2008] = PEĻŅA['maize', 2008]*1.2

3. CV() funkcijas lietošana. Likuma kreisās puses vērtību lietošana likuma labajā pusē:PEĻŅA[VALSTS in ('Latvija', 'Lietuva'), GADS= 2011] = PEĻŅA[CV(VALSTS), 2010]*1.5

4. Aizstājējzīmes lietošana:PEĻŅA[VALSTS is ANY, 2011] =PEĻŅA['Latvija', 2010]

5. Sakārtota aprēķinu kārtība:PEĻŅA[VALSTS is ANY, GADS BETWEEN 2007 and 2009] order by GADS = PEĻŅA[CV(VALSTS), CV(GADS)-1]

6. Iteratīva likumu novērtēšana (līdz sasniegts beigu stāvoklis). Var lietot arī beigu noteikumu UNTIL.MODELDIMENSION by (X)MEASURES (S)RULES ITERATE (4) (S[X=1] = S[x=1]/2) četras reizes atkārtot

7. Katrai partīcijai var būt savi likumi.

2 https://docs.oracle.com/database/121/DWHSG/sqlmodel.htm#DWHSG8778

7

Page 8: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

Datu apstrāde ar SQL Model konstrukciju

One of the rules updates an existing value, while the other two create new values for a forecast. The figure shows that the rows of data retrieved by a query are fed into the MODEL clause and rearranged into an array. Once the array is defined, rules are applied one by one to the data. The shaded cells represent new data created by the rules and the cells enclosed by ovals represent the source data for the new values. Finally, the data, including both its updated values and newly created values, is rearranged into row form and presented as the results of the query.

8

Page 9: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

Piemēros izmantojamā tabula

create table PARDOSANA(ID number Primary key,VALSTS varchar2(20),PRECE varchar2(20),GADS number,DAUDZUMS number,IENEMUMI number);

begininsert into PARDOSANA values(1, 'Latvija', 'piens', 2010, 1000, 300000);insert into PARDOSANA values(2, 'Latvija', 'piens', 2011, 1500, 450000);insert into PARDOSANA values(3, 'Latvija', 'piens', 2012, 2000, 600000);insert into PARDOSANA values(4, 'Latvija', 'maize', 2010, 4000, 1600);insert into PARDOSANA values(5, 'Latvija', 'maize', 2011, 5000, 2000);insert into PARDOSANA values(6, 'Latvija', 'maize', 2012, 5500, 2200);insert into PARDOSANA values(7, 'Latvija', 'ūdens', 2010, 1000, 100000);insert into PARDOSANA values(8, 'Latvija', 'ūdens', 2011, 1100, 110000);insert into PARDOSANA values(9, 'Latvija', 'ūdens', 2012, 1200, 120000);insert into PARDOSANA values(10, 'Lietuva', 'piens', 2010, 2000, 600000);insert into PARDOSANA values(11, 'Lietuva', 'piens', 2011, 3000, 900000);insert into PARDOSANA values(12, 'Lietuva', 'piens', 2012, 3500, 1050000);insert into PARDOSANA values(13, 'Lietuva', 'sviests', 2010, 1000, 1000000);insert into PARDOSANA values(14, 'Lietuva', 'sviests', 2011, 2000, 2000000);insert into PARDOSANA values(15, 'Lietuva', 'sviests', 2012, 2500, 250000);insert into PARDOSANA values(16, 'Lietuva', 'āboli', 2010, 2000, 100000);insert into PARDOSANA values(17, 'Lietuva', 'āboli', 2011, 3000, 150000);insert into PARDOSANA values(18, 'Lietuva', 'āboli', 2012, 4000, 200000);end;

9

Page 10: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

SQL Model konstrukcijas izmantošana (1)

select PRECE, GADS, DAUDZUMSfrom PARDOSANAwhere VALSTS = 'Latvija' and PRECE = 'piens' modelpartition by (VALSTS)dimension by (PRECE, GADS)measures (DAUDZUMS, IENEMUMI)rules (DAUDZUMS[PRECE ='piens', GADS = 2012] = DAUDZUMS[PRECE = 'piens', GADS = 2012] + 500)order by GADS;

Alternatīvs pieraksts likumā

select PRECE, GADS, DAUDZUMSfrom PARDOSANAwhere VALSTS = 'Latvija' and PRECE = 'piens' modelpartition by (VALSTS)dimension by (PRECE, GADS)measures (DAUDZUMS, IENEMUMI)rules (DAUDZUMS['piens', 2012] = DAUDZUMS['piens', 2012] + 500)order by GADS;

10

Page 11: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

SQL Model konstrukcijas izmantošana (2)Sinonīmu lietošana

select PRE, GA, DAU, IENfrom PARDOSANAwhere VALSTS = 'Latvija' and PRECE = 'piens' (sinonīmi nestrādā)modelpartition by (VALSTS as VAL)dimension by (PRECE as PRE, GADS as GA)measures (DAUDZUMS as DAU, IENEMUMI as IEN)rules (DAU['piens', 2012] = DAU['piens', 2012] + 500)order by GA;

11

Page 12: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

SQL Model konstrukcijas izmantošana (3)Funkciju lietošana likumos

select PRECE, GADS, DAUDZUMS from PARDOSANAwhere VALSTS = 'Latvija'modelpartition by (VALSTS)dimension by (PRECE, GADS)measures (DAUDZUMS)rules (DAUDZUMS[PRECE ='piens', GADS =2012] = SUM(DAUDZUMS)[PRECE = 'piens', GADS BETWEEN 2010 and 2011])order by PRECE, GADS;

12

Page 13: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

SQL Model konstrukcijas izmantošana (4) UPSERT, UPSERT ALL un UPDATE norāžu izmantošana likumos

1. Norādes UPSERT un UPSERT ALL:a) ļauj veidot jaunas šūnas rezultātā (ne datu bāzē), kuras sākotnēji neeksistē;b) ja šūna eksistē tās vērtība tiek modificēta (UPDATE).

2. Norāde UPDATE ļauj modificēt esošo šūnu vērtības.

select PRECE, GADS, DAUDZUMSfrom PARDOSANAwhere VALSTS = 'Latvija' and PRECE = 'ūdens'modelpartition by (VALSTS)dimension by (PRECE, GADS)measures (DAUDZUMS)rules (UPSERT DAUDZUMS['ūdens', 2013] = DAUDZUMS['ūdens', 2012] + 1000)order by PRECE, GADS;

13

Page 14: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

SQL Model konstrukcijas izmantošana (5)CV() funkcijas lietošana

CV() funkcija tiek lietota likumu labajā pusē lai norādītu "tā pati dimensijas vērtība, kas likuma kresajā pusē".

select PRECE, GADS, DAUDZUMSfrom PARDOSANAwhere VALSTS = 'Latvija'modelpartition by (VALSTS)dimension by (PRECE, GADS)measures (DAUDZUMS)rules (DAUDZUMS[PRECE IN ('piens', 'maize'), GADS =2012] = DAUDZUMS[CV(PRECE), GADS = 2011] * 1.2)order by PRECE, GADS;

14

Page 15: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

SQL Model konstrukcijas izmantošana (6) Vispārēju norāžu (vildcard specification) ANY (jebkuršs) un IS ANY izmantošana dimensijām

select PRECE, GADS, DAUDZUMSfrom PARDOSANAwhere VALSTS = 'Latvija'modelpartition by (VALSTS)dimension by (PRECE, GADS)measures (DAUDZUMS)rules (DAUDZUMS[PRECE IS ANY, 2012] = DAUDZUMS[CV(PRECE), 2011] * 1.2)order by PRECE, GADS;

15

Page 16: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

SQL Model konstrukcijas izmantošana (7) Sakārtotas kārtības aprēķini (ordered computation)

For rules updating a set of cells, the result may depend on the ordering of dimension values. You can force a particular order for the dimension values by specifying an ORDER BY in the rule. Gadi tiek apstrādāti pieaugošā secībā.

select PRECE, GADS, DAUDZUMSfrom PARDOSANAwhere VALSTS = 'Latvija' and PRECE = 'ūdens'modelpartition by (VALSTS)dimension by (PRECE, GADS)measures (DAUDZUMS)rules (DAUDZUMS['ūdens', GADS BETWEEN 2011 and 2012] ORDER by GADS = DAUDZUMS['ūdens', CV(GADS)-1] * 1.2)order by GADS;

16

Page 17: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

SQL Model konstrukcijas izmantošana (8) Automātiska likumu kārtības sakārtošana (automatic rule ordering)

Rules in the MODEL clause can be automatically ordered based on dependencies among the cells using the AUTOMATIC ORDER keywords. For example, the last two rules will be processed before the first rule because the first depends on the second and third.

select PRECE, GADS, DAUDZUMSfrom PARDOSANAwhere VALSTS = 'Latvija' and PRECE = 'ūdens'modelpartition by (VALSTS)dimension by (PRECE, GADS)measures (DAUDZUMS)rules AUTOMATIC ORDER(DAUDZUMS[PRECE = 'ūdens', GADS = 2012] = DAUDZUMS[PRECE = 'ūdens', GADS = 2011] * 1.3,

DAUDZUMS[PRECE = 'ūdens', GADS = 2011] = DAUDZUMS[PRECE = 'ūdens', GADS = 2010] * 1.2)order by GADS;

PRECE GADS DAUDZUMS-------------------- ---------- ----------------------ūdens 2010 1000ūdens 2011 1200ūdens 2012 1560

PRECE GADS DAUDZUMS-------------------- ---------- ---------------------ūdens 2010 1000 Nesakārtots variantsūdens 2011 1200ūdens 2012 1430

17

Page 18: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

SQL Model konstrukcijas izmantošana (9) Iteratīva likumu vērtību novērtēšana (iterative rule evaluation)

You can specify iterative rule evaluation, in which case the rules are evaluated iteratively until the termination condition is satisfied. The number of iterations is specified in the ITERATE option of the MODEL clause. It is also possible to specify a termination condition by using an UNTIL clause.

MODEL dimension by (x) measures (s) rules ITERATE (4) (s[x=1] = s[x=1]/2)

select PRECE, GADS, DAUDZUMSfrom PARDOSANAawhere a.VALSTS = 'Latvija' and PRECE = 'ūdens'modelpartition by (a.VALSTS)dimension by (a.PRECE, a.GADS)measures (a.DAUDZUMS)rules ITERATE(3) (DAUDZUMS['ūdens', 2012] = DAUDZUMS['ūdens', 2012] * 2)order by GADS;

PRECE GADS DAUDZUMS-------------------- ---------- ------------------ūdens 2010 1000ūdens 2011 1100ūdens 2012 9600

Sākotnējie dati:PRECE GADS DAUDZUMS-------------------- ---------- ----------------ūdens 2010 1000ūdens 2011 1100ūdens 2012 1200

18

Page 19: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

SQL Model konstrukcijas izmantošana (10) ?Atsauce uz citiem masīviem (tabulām) (reference models)

In addition to the multi-dimensional array on which rules operate, which is called the main model, one or more read-only multi-dimensional arrays, called reference models, can be created and referenced in the MODEL clause to act as look-up tables for the main model. Like the main model, a reference model is defined over a query block and has DIMENSION BY and MEASURES clauses to indicate its dimensions and measures respectively.

create table TRANSFORM(VALSTS varchar2(20), KOEF number(5,2));insert into TRANSFORM values('Latvija', 1);insert into TRANSFORM values('Lietuva', 0.2);

select PRECE, GADS, DAUDZUMS, IENEMUMIfrom PARDOSANAwhere VALSTS = 'Lietuva' and PRECE = 'piens'modelreference KOEF_ATS on (select VALSTS, KOEF from TRANSFORM)dimension by (VALSTS) measures (KOEF) IGNORE NAV

main Transformesanadimension by (VALSTS, GADS) measures (DAUDZUMS, IENEMUMI) IGNORE NAVrules(IENEMUMI[VALSTS, 2012] = IENEMUMI[CV(VALSTS), 2012] * KOEF['Lietuva'])order by GADS;

PRECE GADS DAUDZUMS IENEMUMI---------------------------------------------------------------------piens 2010 2000 600000piens 2011 3000 900000piens 2012 3500 210000

19

Page 20: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

SQL Model konstrukcijas izmantošana (11) Partīciju aprēķinu veidošana (scalable computation)

You can partition data and evaluate rules within each partition independent of other partitions. This enables parallelization of model computation based on partitions. For example, consider the following model:

select VALSTS, PRECE, GADS, DAUDZUMSfrom PARDOSANAwhere PRECE = 'piens'modelpartition by (VALSTS)dimension by (PRECE, GADS)measures (DAUDZUMS)rules(DAUDZUMS[PRECE = 'piens', GADS = 2012] = SUM(DAUDZUMS)[PRECE = 'piens', GADS BETWEEN 2010 and 2012])order by VALSTS, PRECE, GADS;

VALSTS PRECE GADS DAUDZUMS----------------------------------------------------------------------Latvija piens 2010 1000Latvija piens 2011 1500Latvija piens 2012 4500Lietuva piens 2010 2000Lietuva piens 2011 3000Lietuva piens 2012 8500

20

Page 21: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

SQL Model konstrukcijas izmantošana (12) FOR cikla izmantošana (FOR loops)

create table PRECES(NUM number Primary key,NOS varchar2(20));insert into PRECES values(1, 'piens');insert into PRECES values(2, 'maize');insert into PRECES values(3, 'ūdens');

select PRECE, GADS, DAUDZUMSfrom PARDOSANAwhere VALSTS = 'Latvija'modeldimension by (PRECE, GADS)measures (DAUDZUMS)rules(DAUDZUMS[for PRECE in (select NOS from PRECES where NUM >1),for GADS in (2011, 2012)] = DAUDZUMS[CV(PRECE), CV(GADS)] + 70)order by PRECE, GADS;

PRECE GADS DAUDZUMS-------------------- ---------- --------------------maize 2010 4000maize 2011 5070maize 2012 5570piens 2010 1000piens 2011 1500piens 2012 2000ūdens 2010 1000ūdens 2011 1170ūdens 2012 1270

21

Page 22: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

SQL Model konstrukcijas izmantošana (13)Škērstabulu veidošana (pivot tables)

create table TESTS(KOL1 varchar2(10), KOL2 varchar2(10), KOL3 number);

insert into TESTS values('Koks','darbs1',12);insert into TESTS values('Koks','darbs2',14);insert into TESTS values('Koks','darbs3',5);insert into TESTS values('Zars','darbs1',10);insert into TESTS values('Zars','darbs2',20);insert into TESTS values('Celms','darbs3',45);

select distinct DIM1, JAU_KOL1, JAU_KOL2, JAU_KOL3from TESTSmodelignore navdimension by(KOL1 DIM1, KOL2 DIM2)measures(KOL3 t, 0 JAU_KOL1, 0 JAU_KOL2, 0 JAU_KOL3)rules (JAU_KOL1[any, any] = t[CV(DIM1), DIM2 = 'darbs1'],JAU_KOL2[any, any] = t[CV(DIM1), DIM2 = 'darbs2'],JAU_KOL3[any, any] = t[CV(DIM1), DIM2 = 'darbs3']);

22

Page 23: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

select distinct DIM2, JAU_KOL1, JAU_KOL2, JAU_KOL3from TESTSmodelignore navdimension by(KOL1 DIM1, KOL2 DIM2)measures(KOL3 t, 0 JAU_KOL1, 0 JAU_KOL2, 0 JAU_KOL3)rules (JAU_KOL1[any, any] = t[CV(DIM2), DIM2 = 'Zars'],JAU_KOL2[any, any] = t[CV(DIM1), DIM2 = 'Celms'],JAU_KOL3[any, any] = t[CV(DIM1), DIM2 = 'Koks']);

23

Page 24: datubaze.files.wordpress.com€¦  · Web view24. Virtuālu daudzdimensiju datu masīvu veidošana. tabula. tabula. tabula. tabula. tabula. Virtuāla d. audzdimensiju datu bāze

Šķērstabulas vaicājuma izpildes plāna apskate

explain plan set statement_id 'SKERSTABULA' forselect distinct DIM1, JAU_KOL1, JAU_KOL2, JAU_KOL3from TESTSmodelignore navdimension by(KOL1 DIM1, KOL2 DIM2)measures(KOL3 t, 0 JAU_KOL1, 0 JAU_KOL2, 0 JAU_KOL3)rules (JAU_KOL1[any, any] = t[CV(DIM1), DIM2 = 'darbs1'],JAU_KOL2[any, any] = t[CV(DIM1), DIM2 = 'darbs2'],JAU_KOL3[any, any] = t[CV(DIM1), DIM2 = 'darbs3']);

select plan_table_output from table(dbms_xplan.display('plan_table','SKERSTABULA'));

24