2010-02-25 9 views
5

Sto testando diversi schemi di blocco per un grande tavolo, più di 4 milioni di file e ci si aspetta che cresca fino a 10 milioni.Dettagli dell'impatto di diversi schemi di blocco nei database?

La mia esperienza con SyBase:
ALLPAGES, BCP estremamente lento (in) e aggiornamento con un campo che appartiene alla chiave primaria.
DATAROWS, BCP veloce, aggiornamento rapido per i campi nel PK, selezione più veloce.
DATAPAGES, BCP e aggiornamento più veloci e selezione più rapida di ALLPAGES ma non veloce come DATAROWS.

Non sono un esperto, ma mi sembra che DATAROWS blocchi più di DATAPAGES e non ho visto alcun aspetto negativo con DATAPAGES.

L'unico punto a favore di DATAROWS che ho trovato è stato un po 'più veloce nelle prestazioni che utilizzano la chiave primaria, ma DATAPAGES è notevolmente più veloce agli aggiornamenti.

Qualche esperienza nella pratica?
Come si confronta questo schema di chiusura?
Pro/Contro di ciascuno?

Ho provato a leggere la teoria dietro, ma non è molto chiaro per me.

+0

Strano: Ho notato che quando applico una nuova PK cluster per una tabella che è già con DATAPAGES bloccano, non sembra per ordinare fisicamente i dati, quando lo faccio seleziona * da esso, non tutti i risultati sono ordinati dal PK ... Perché? – mencargo

risposta

0

Il blocco è un meccanismo di controllo della concorrenza. Garantisce la coerenza dei dati all'interno e tra le transazioni. Il blocco è necessario in un ambiente multiutente, poiché diversi utenti potrebbero essere che lavorano con gli stessi dati nello stesso momento, quindi non si dovrebbe scegliere schemi di blocco in base, ad es. Velocità BCP.

Per le tabelle che utilizzano AllPages bloccaggio o datapages bloccaggio, sia i blocchi di pagina o blocchi di tabella

Per le tabelle che utilizzano DataRow bloccaggio, sia i blocchi di riga o blocchi tabella

ma tavoli AllPages-locked proteggono fantasmi (righe che possono apparire o scomparire da una serie di risultati bloccando le pagine indice per la transazione serializable read

In generale, è necessario utilizzare datarows o datapages che bloccano le tabelle con conflitti di blocco a causa di aggiornamenti e selezioni.

Per saperne di più blocco e prestazioni here

+0

Una buona informazione e un sito web utile, ma la mia domanda riguarda ancora l'esperienza del mondo reale, l'impatto sulle prestazioni e il confronto. I "fantocci" si sarebbero verificati solo se si verifica un cambiamento al momento della lettura? O si tratta di un problema generale con l'esclusione del blocco ALLPAGES? – mencargo

Problemi correlati