in

UGISS Community

Il sito della community dello User Group Italiano di SQL Server

Consiglio sul Partitioning

Last post 08-27-2008 12.42 by stepic77. 5 replies.
Page 1 of 1 (6 items)
Sort Posts: Previous Next
  • 07-29-2008 16.38

    • stepic77
    • Top 25 Contributor
      Male
    • Joined on 06-04-2007
    • viterbo
    • Posts 42
    • Points 705

    Consiglio sul Partitioning

    Ciao a tutti, sto utilizzando sql 2005 standard ed ho un piccolo dubbio. Ho una tabella dove, per ogni cliente che aggiungo, creo 1 Milione e 500 mila record di inizializzazione.

    I clienti, ora sono 2 ma possono diventare n (spero anche il prima possibile), mi consigliate l'uso del partitioning?
    Se si
    Posso utilizzare il partitioning solo su una parte di primary key (FK_ID_CLIENTE)
    Posso integrare il partitioning nel db in produzione con un semplice alter table?
    Devo creare/aggiungere un FILEGROUP per ogni cliente?

    Mia Tabella
    FK_ID_CLIENTE PK
    FK_ID_OGGETTO
    PK
    FK_ID_PAESE PK
    FK_MESE PK
    FK_ANNO PK
    T                                      
    T12                                    
    T24
    Descrizione

     

    Siete grandi e ben tornati online!

    • Post Points: 35
  • 07-29-2008 16.45 In reply to

    • lbenaglia
    • Top 25 Contributor
      Male
    • Joined on 05-14-2007
    • Vimercate (Milano)
    • Posts 81
    • Points 1.210

    Re: Consiglio sul Partitioning

    stepic77:

    Ciao a tutti, sto utilizzando sql 2005 standard...I clienti, ora sono 2 ma possono diventare n (spero anche il prima possibile), mi consigliate l'uso del partitioning?

    Ciao Stefano,

    Il Partitioning delle tabelle/indici è disponibile solo nella Enterprise/Developer Edition Smile

    Features Supported by the Editions of SQL Server 2005

    Ciao!

    Lorenzo Benaglia
    Microsoft MVP - SQL Server
    http://blogs.dotnethell.it/lorenzo
    http://italy.mvps.org
    • Post Points: 20
  • 07-29-2008 17.31 In reply to

    • stepic77
    • Top 25 Contributor
      Male
    • Joined on 06-04-2007
    • viterbo
    • Posts 42
    • Points 705

    Re: Consiglio sul Partitioning

    NOOOOOOOOOOOOOOOO
    CryingCryingCryingCrying 

     

     
    Scusa Lorenzo, ma concettualmente è giusto e si può fare' ?

    • Post Points: 5
  • 07-30-2008 9.59 In reply to

    • dmauri
    • Top 10 Contributor
      Male
    • Joined on 05-14-2007
    • Novate Milanese
    • Posts 1.016
    • Points 13.125

    Re: Consiglio sul Partitioning

    stepic77:
    I clienti, ora sono 2 ma possono diventare n (spero anche il prima possibile), mi consigliate l'uso del partitioning?

    Si, non tanto per una questione di performance, ma per una questione di flessibilità nella manutenzione.

    Nel caso dovessi ricaricare tutti i dati di un clienti potresti lavorare solo sulla sua partizione, evitando di "dare fastidio" agli altri.

    stepic77:
    Posso integrare il partitioning nel db in produzione con un semplice alter table?

    Si e No Smile Si nel senso che in effetti pui fare tutto utilizzando ALTER TABLE ma devi prima crearti la partition function ed il partition schema. Dopodiche devi utilizzare ALTER TABLE per far si che la tua tabella non faccia riferimento ad un filegroup ma al partition schema.

    Kimberly ha scritto un bel whitepaper sull'uso del partitioning:

    http://www.ugiss.org/Content/Article/Partitioned-Tables-and-Indexes-in-SQL-Server-2005.aspx

    stepic77:
    Devo creare/aggiungere un FILEGROUP per ogni cliente?

    Non è obbligatorio ma è sicuramente sensato Smile

    stepic77:
    Posso utilizzare il partitioning solo su una parte di primary key (FK_ID_CLIENTE)

    Si, ma leggi bene il documento di Kimberly per capire come strutturare correttamente la logica di partizionamente, specificando anche i CHECK constraint necessari in modo che sia possibile benificiare della possibilità di fare switch-it e switch-out delle partizioni.

    Davide Mauri
    Microsoft MVP - SQL Server, MCP, MCAD, MCDBA, MCT - http://www.davidemauri.it
    Socio Fondatore e Mentor di Solid Quality Learning Italy - http://www.solidq.com
    Presidente di UGISS: User Group Italiano Sql Server - http://www.ugiss.org
    • Post Points: 20
  • 08-04-2008 17.40 In reply to

    • stepic77
    • Top 25 Contributor
      Male
    • Joined on 06-04-2007
    • viterbo
    • Posts 42
    • Points 705

    Re: Consiglio sul Partitioning

    Grazie Davide, molto interessante l'articolo di Kimberly.
    Ho ricreato nel mio portatile, la partition function, il partition schema, le giuste primary key della mia tabella e la relazione della mia tabella con il partition schema e TUTTO FUNZIONA STUPENDAMENTE Big Smile
    Solamente la tabella più utilizzata nei calcoli del programma (300 Mega per ogni cliente) ho deciso di associarla alla partizione, per le altre tabelle non credo sia un problema lasciarle lavorare sulla partizione principale (o no?)
    Infine in una stored ho aggiunto uno script per creare (per ogni nuovo cliente) la partizione fisica e logica ed i relativi merge range e next.
    Ho saltato la parte dei CHECK constraint perchè non ho capito bene come sfruttare le switch-it e switch-out delle partizioni.... (forse è meglio associare alla partizione tutte le tabelle cliente??)


    Nel primo confronto col "vecchio sistema", le performance sono aumentate notevolmente. Una semplice select count(*) di 50 milioni di record è 4 volte più veloce Yes.

    • Post Points: 5
  • 08-27-2008 12.42 In reply to

    • stepic77
    • Top 25 Contributor
      Male
    • Joined on 06-04-2007
    • viterbo
    • Posts 42
    • Points 705

    Re: Consiglio sul Partitioning

    Ciao ragazzi, ultimi dubbi sul partitioning e poi non vi rompo più... promesso. Big Smile

    1) Perchè la tabella associata alla partizione deve avere (almeno nel mio caso)  la PRIMARY KEY NONCLUSTERED.

    2) Dalla stessa stored devo aggiornare 2 PARTITION FUNCTION di 2 database separati, visto che non posso utilizzare il comando USE database, come faccio a modificare la partizione del database non "usato"?

    • Post Points: 5
Page 1 of 1 (6 items)
(C) 2007 User Group Italiano di SQL Server