= Партиционирање [wiki:DataStoringOrganization Врати се назад] == Партициски функции и шема Поради тоа што `encounters`, `medications`, `observations` и `procedures` користат ист тип за колоната за датум - `datetime2`, тие може да користат иста функција - `pf_Encounters_Year` и иста партициска шема - `ps_Encounters_Year`. Табелата `conditions` користи различен тип за датум - `date`, па за неа ќе се направи посебна партициска функција и шема. === `pf_Encounters_Year` и `ps_Encounters_Year` Партициската функција - `pf_Encounters_Year (datetime2)` е креирана со `boundaries: 2000, 2010, 2020, 2030`. Партициската шема `ps_Encounters_Year` ги мапира партициите на горните `filegroups`. {{{#!sql create partition function pf_Encounters_Year (datetime2) as range right for values ( '2000-01-01', '2010-01-01', '2020-01-01', '2030-01-01' ); go create partition scheme ps_Encounters_Year as partition pf_Encounters_Year to ( FG_Old, FG_2000s, FG_2010s, FG_2020s, FG_Future ); go }}} * `range right` значи дека граничната вредност припаѓа на десната (повисока) партиција. === `pf_Conditions_Year` и `ps_Conditions_Year` {{{#!sql create partition function pf_Conditions_Year (date) as range right for values ( '2000-01-01', '2010-01-01', '2020-01-01', '2030-01-01' ); go create partition scheme ps_Conditions_Year as partition pf_Conditions_Year to ( FG_Old, FG_2000s, FG_2010s, FG_2020s, FG_Future ); go }}} == Clustered индекси со партиционирање Партиционирањето реално се применува кога clustered индексот е креиран врз партициската шема. Помалите табели како `allergies` и `immunizations` не се партиционирани затоа што се помали и не зависат од временски период. === `encounters` {{{#!sql create clustered index CI_Encounters_StartDate_Id on encounters(start, Id) with (drop_existing = off) on ps_Encounters_Year(start); go }}} === `observations` {{{#!sql create clustered index CI_Observations_Date_Patient on observations([date], patient) with (drop_existing = off) on ps_Encounters_Year([date]); go }}} === `medications` {{{#!sql create clustered index CI_Medications_Start on medications([start], patient) with (drop_existing = off) on ps_Encounters_Year([start]); go }}} === `procedures` {{{#!sql create clustered index CI_Procedures_Start on procedures([start], patient) with(drop_existing = off) on ps_Encounters_Year([start]); go }}} === `conditions` {{{#!sql create clustered index CI_Conditions_Start on conditions([start], patient) with (drop_existing = off) on ps_Conditions_Year([start]); go }}} [wiki:DataStoringOrganization Врати се назад]