Cum măsoară valoarea factorului de umplere SQL

De obicei, când creez indexuri pe tabele, în general, ghicesc ce ar trebui să se bazeze Fill Factor pe o idee educată despre modul în care va fi folosit masa (multe sunt citite sau multe scriu).

Există o modalitate mai științifică de a determina o valoare mai exactă Fill Factor ?

0
fr hi bn

2 răspunsuri

Puteți încerca să rulați o listă mare de operații realiste și să priviți cozi de IO pentru diferitele acțiuni.

Există o mulțime de variabile care o guvernează, cum ar fi dimensiunea fiecărui rând și numărul de scrieri versus citiri.

În principiu: factor de umplere ridicat = citire mai rapidă, scăzută = scriere mai rapidă.

Cu toate acestea, nu este chiar așa de simplu, deoarece aproape toate vor fi la un subset de rânduri care trebuie să fie privit în primul rând.

De exemplu: setați un factor de umplere la 10% și fiecare actualizare pe un singur rând va dura de 10 ori mai mult pentru a găsi rândul pe care îl schimbă, chiar dacă o împărțire a paginii ar fi foarte puțin probabilă.

În general, vezi factori de umplere de 70% (scriere foarte mare) la 95% (citire foarte mare).

E un fel de artă.

Consider că un mod bun de a gândi factorii de umplere este ca paginile dintr-o agendă - cu cât împachetați mai mult adresele cu atât este mai greu să le schimbați, ci și cartea mai subțire. Cred că i-am explicat mai bine pe blogul meu .

0
adăugat

Aș fi de părere că, dacă sunteți după îmbunătățiri ale performanței, timpul dvs. este mult mai bine petrecut în altă parte, ajustând schema dvs., optimizând interogările dvs. și asigurând o bună acoperire a indicelui. Factorul de umplere este unul din acele lucruri pentru care trebuie să vă faceți griji atunci când știți că orice altceva din sistemul dvs. este optim. Nu știu pe nimeni care să spună asta.

0
adăugat