Partiționarea tabelelor - SQL ServerFlaviu BOLDEAProject Manager, AWINTA CONSULTING
14.12.2010 – RONUA Brașov
Cine sunt?− Lucrez la firma: Awinta Consulting SRL− Funcție: Project Manager− Proiecte: Master Data Management
Agenda− Partitionarea tabelelor in SQL Server
2008− Studiu de caz – grup de farmacii− Ce inseamna partitionare− Componentele partitionarii
− Functii de partitionare− Schema de partitionare
− Avantaje si dezavantaje− View indexat
Studiu de caz – grup de farmacii− Se da un grup de farmacii cu caracteristicile
− Numar farmacii: 2 – 100 (plaja larga)− Import de date periodic− Export de date catre farmacii− Afisare date pe web− Export catre alte sisteme
Solutia 1− Baze de date/schema/tabele separate
pentru fiecare farmacie− Greu de intretinut− Greu de interogat− Greu de folosit− Avantaje: securitate, performante bune
interogari per farmacie
Solutia 2− Baze de date unica, set comun de
tabele cu camp identificator pentru farmacie − Usor de intretinut− Usor de interogat− Performante mai reduse la interogari− Performante mai reduse la import date
Ce facem? … Partitionam− Partitionarea imparte tabelele in
bucati mai mici si mai usor de intretinut si interogat
− Partea buna este ca SQL Server se ocupa de treaba, noi trebuie sa-I punem la dispozitie instrumentele
− SQL Server 2005/2008 Entreprise/Developer
Functii de partitionare− Defineste cum vor fi impartite dateleCREATE PARTITION FUNCTION ParteneriPartitionFunction (int) AS RANGE LEFT FOR VALUES (50, 100)
CREATE PARTITION FUNCTION ParteneriPartitionFunction (int) AS RANGE RIGHT FOR VALUES (50, 100)
50, 100 – stau la stanga
50, 100 – stau la dreapta
Schema de partitionare− Defineste spatiul de stocare pentru
fiecare partitie− Avantaje:
− Mai usor administrat (creat backup per file)
− Fisierele mai importante pot fi stocate pe medii mai rapide
− Fisierele vechi pot fi indepartateCREATE PARTITION SCHEME ParteneriPartitionScheme AS PARTITION ParteneriPartitionFunction TO (fg1, fg2, fg3)
Partitionare tabela− Schema si coloana de partitionare se
adauga in clauza ON− Functia nu mai trebuie specificata
deoarece schema contine deja functia de partitionare
CREATE TABLE Parteneri (PartenerId int PRIMARY KEY, Nume varchar(30))ON ParteneriPartitionScheme(PartenerId)
Alterarea functiei de partitionare− Nu se poate modifica direct− Modificarea se poate face folosind
SPLIT sau MERGE− SPLIT – adauga o noua limita unei
functii de partitionare care va crea un nou interval
− MERGE – uneste doua partitii
SPLIT
Trebuie adaugat si un nou filegroup care va fi folosit de noua partitie:
ALTER PARTITION FUNCTION ParteneriPartitionFunction()SPLIT RANGE (150);
ALTER PARTITION SCHEME ParteneriPartitionScheme NEXT USED 'fg4';
Avantajele partitionarii- Tabelele mari sunt mai usor de administrat- Imbunatateste performantele interogarilor
filtrate dupa partitie- Imbunatateste performantele importurilor
- Import in tabele separate si apoi switch pe partitie
- Indecsii vor fi mai putin fragmentati- Datele vechi se pot arhiva
- Datele care nu se mai modifica se pot marca ReadOnly
- Lock escalation – AUTO (2008)
Pentru mai multe informații− Partitioned Tables and Indexes
http://msdn.microsoft.com/en-us/library/ms188706.aspx
− Partitioned Table and Index Strategies Using SQL Server 2008http://technet.microsoft.com/en-us/library/dd578580(SQL.100).aspx
− New Limit for Number of Partitions in SQL Server 2008 SP2 (15.000)
http://blogs.msdn.com/b/hanspo/archive/2010/11/29/new-limit-for-number-of-partitions-in-sql-server-2008-sp2.aspx
Pentru workshop-uri și codecamp-urironua.ro/codecamp
ronua.ro/uxworkshopronua.ro/tv/opt-in-form.html
Pentru help (consultanță):fă-ți cont pe ronua.ro
Training Resources
Top Related