Domanda

Di solito quando creo indici sulle tabelle, generalmente indovino cosa Fill Factor dovrebbe basarsi su un'ipotesi plausibile di come verrà utilizzata la tabella (molte letture o molte scritture).

Esiste un modo più scientifico per determinarne uno più accurato Fill Factor valore?

È stato utile?

Soluzione

Potresti provare a eseguire un lungo elenco di operazioni realistiche e osservare le code I/O per le diverse azioni.

Ci sono molte variabili che lo governano, come la dimensione di ogni riga e il numero di scritture e letture.

Fondamentalmente:fattore di riempimento elevato = lettura più rapida, basso = scrittura più rapida.

Tuttavia non è così semplice, poiché quasi tutte le scritture riguarderanno un sottoinsieme di righe che devono essere prima cercate.

Ad esempio:imposta un fattore di riempimento al 10% e ogni aggiornamento di una singola riga impiegherà 10 volte più tempo per trovare la riga che sta modificando, anche se una divisione della pagina sarebbe molto improbabile.

Generalmente si vedono fattori di riempimento compresi tra il 70% (scrittura molto alta) e il 95% (lettura molto alta).

È un po' una forma d'arte.

Trovo che un buon modo di pensare ai fattori di riempimento sia come le pagine di una rubrica: più si compattano gli indirizzi, più è difficile cambiarli, ma più sottile è il libro.Penso di averlo spiegato meglio il mio blog.

Altri suggerimenti

Tendo a essere dell'opinione che se cerchi miglioramenti delle prestazioni, il tuo tempo è molto meglio speso altrove, modificando il tuo schema, ottimizzando le tue query e garantendo una buona copertura dell'indice.Il fattore di riempimento è una di quelle cose di cui devi preoccuparti solo quando lo fai Sapere che tutto il resto nel tuo sistema è ottimale.Non conosco nessuno che possa dirlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top