Stima delle dimensioni di un indice non clusterEstimate the Size of a Nonclustered Index

Per stimare la quantità di spazio necessaria per archiviare un indice non cluster, effettuare le operazioni seguenti:Follow these steps to estimate the amount of space that is required to store a nonclustered index:

  1. Calcolare le variabili da utilizzare nei passaggi 2 e 3.Calculate variables for use in steps 2 and 3.

  2. Calcolare lo spazio utilizzato per l'archiviazione di informazioni sull'indice nel livello foglia dell'indice non cluster.Calculate the space used to store index information in the leaf level of the nonclustered index.

  3. Calcolare lo spazio utilizzato per l'archiviazione di informazioni sull'indice nei livelli non foglia dell'indice non cluster.Calculate the space used to store index information in the non-leaf levels of the nonclustered index.

  4. Sommare i valori calcolati.Total the calculated values.

Passaggio 1.Step 1. Calcolare le variabili da utilizzare nei passaggi 2 e 3Calculate Variables for Use in Steps 2 and 3

Per calcolare le variabili utilizzate per stimare la quantità di spazio necessario per archiviare i livelli superiori dell'indice, è possibile effettuare le operazioni seguenti:You can use the following steps to calculate variables that are used to estimate the amount of space that is required to store the upper levels of the index.

  1. Specificare il numero di righe che verranno incluse nella tabella:Specify the number of rows that will be present in the table:

    Num_Rows = numero di righe della tabellaNum_Rows = number of rows in the table

  2. Specificare il numero di colonne a lunghezza fissa e a lunghezza variabile incluse nella chiave dell'indice e calcolare lo spazio necessario per archiviarle:Specify the number of fixed-length and variable-length columns in the index key and calculate the space that is required for their storage:

    Le colonne chiave di un indice possono includere colonne a lunghezza fissa e a lunghezza variabile.The key columns of an index can include fixed-length and variable-length columns. Per stimare le dimensioni delle righe di indice di livello interno, calcolare lo spazio occupato da ognuno di questi gruppi di colonne all'interno della riga di indice.To estimate the interior level index row size, calculate the space that each of these groups of columns occupies within the index row. Le dimensioni di una colonna dipendono dal tipo di dati e dalla lunghezza specificata.The size of a column depends on the data type and length specification.

    Num_Key_Cols = numero totale di colonne chiave (a lunghezza fissa e a lunghezza variabile)Num_Key_Cols = total number of key columns (fixed-length and variable-length)

    Fixed_Key_Size = dimensioni totali in byte di tutte le colonne chiave a lunghezza fissaFixed_Key_Size = total byte size of all fixed-length key columns

    Num_Variable_Key_Cols = numero di colonne chiave a lunghezza variabileNum_Variable_Key_Cols = number of variable-length key columns

    Max_Var_Key_Size = dimensioni massime in byte di tutte le colonne chiave a lunghezza variabileMax_Var_Key_Size = maximum byte size of all variable-length key columns

  3. Considerare anche l'indicatore di posizione delle righe di dati, necessario se l'indice non è univoco:Account for the data row locator that is required if the index is nonunique:

    Se l'indice non cluster non è univoco, l'indicatore di posizione delle righe di dati viene combinato con la chiave dell'indice non cluster in modo da ottenere un valore di chiave univoco per ciascuna riga.If the nonclustered index is nonunique, the data row locator is combined with the nonclustered index key to produce a unique key value for every row.

    Se l'indice non cluster è su un heap, l'indicatore di posizione delle righe di dati corrisponde al RID dell'heap,If the nonclustered index is over a heap, the data row locator is the heap RID. le cui dimensioni sono pari a 8 byte.This is a size of 8 bytes.

    Num_Key_Cols = Num_Key_Cols + 1Num_Key_Cols = Num_Key_Cols + 1

    Num_Variable_Key_Cols = Num_Variable_Key_Cols + 1Num_Variable_Key_Cols = Num_Variable_Key_Cols + 1

    Max_Var_Key_Size = Max_Var_Key_Size + 8Max_Var_Key_Size = Max_Var_Key_Size + 8

    Se l'indice non cluster è su un indice cluster, l'indicatore di posizione delle righe di dati corrisponde alla chiave di clustering.If the nonclustered index is over a clustered index, the data row locator is the clustering key. Le colonne da combinare con la chiave dell'indice non cluster sono le colonne della chiave di clustering non incluse già nel set di colonne chiave dell'indice non cluster.The columns that must be combined with the nonclustered index key are those columns in the clustering key that are not already present in the set of nonclustered index key columns.

    Num_Key_Cols = Num_Key_Cols + numero di colonne chiave di clustering non nel set di colonne chiave di indice non cluster (+ 1 se l'indice cluster è non univoco)Num_Key_Cols = Num_Key_Cols + number of clustering key columns not in the set of nonclustered index key columns (+ 1 if the clustered index is nonunique)

    Fixed_Key_Size = Fixed_Key_Size + dimensioni totali in byte delle colonne chiave di clustering a lunghezza fissa non nel set di colonne chiave di indice non clusterFixed_Key_Size = Fixed_Key_Size + total byte size of fixed-length clustering key columns not in the set of nonclustered index key columns

    Num_Variable_Key_Cols = Num_Variable_Key_Cols + numero di colonne chiave di clustering a lunghezza variabile non nel set di colonne chiave di indice non cluster (+ 1 se l'indice cluster è non univoco)Num_Variable_Key_Cols = Num_Variable_Key_Cols + number of variable-length clustering key columns not in the set of nonclustered index key columns (+ 1 if the clustered index is nonunique)

    Max_Var_Key_Size = Max_Var_Key_Size + dimensioni massime in byte delle colonne chiave di clustering a lunghezza variabile non nel set di colonne chiave di indice non cluster (+ 4 se l'indice cluster è non univoco)Max_Var_Key_Size = Max_Var_Key_Size + maximum byte size of variable-length clustering key columns not in the set of nonclustered index key columns (+ 4 if the clustered index is nonunique)

  4. È possibile riservare parte della riga, nota come mappa di bit Null, per la gestione del supporto dei valori Null della colonna.Part of the row, known as the null bitmap, may be reserved to manage column nullability. Calcolarne le dimensioni:Calculate its size:

    Se sono presenti colonne che ammettono i valori Null nella chiave dell'indice, incluse le eventuali colonne chiave di clustering necessarie descritte al passaggio 1.3, parte della riga di indice viene riservata alla mappa di bit Null.If there are nullable columns in the index key, including any necessary clustering key columns as described in Step 1.3, part of the index row is reserved for the null bitmap.

    Index_Null_Bitmap = 2 + ((numero di colonne nella riga di indice + 7) / 8)Index_Null_Bitmap = 2 + ((number of columns in the index row + 7) / 8)

    Deve essere utilizzata solo la parte Integer dell'espressione precedente.Only the integer part of the previous expression should be used. Eliminare le parti restanti.Discard any remainder.

    Se invece non sono disponibili colonne chiave che ammettono i valori Null, impostare Index_Null_Bitmap su 0.If there are no nullable key columns, set Index_Null_Bitmap to 0.

  5. Calcolare le dimensioni dei dati a lunghezza variabile:Calculate the variable length data size:

    Se sono presenti colonne a lunghezza variabile nella chiave dell'indice, incluse eventuali colonne chiave dell'indice cluster necessarie, determinare lo spazio utilizzato per archiviare le colonne all'interno della riga di indice:If there are variable-length columns in the index key, including any necessary clustered index key columns, determine how much space is used to store the columns within the index row:

    Variable_Key_Size = 2 + (Num_Variable_Key_Cols x 2) + Max_Var_Key_SizeVariable_Key_Size = 2 + (Num_Variable_Key_Cols x 2) + Max_Var_Key_Size

    I byte aggiunti a Max_Var_Key_Size servono a tenere traccia di ogni colonna variabile. Questa formula si basa sul presupposto che tutte le colonne a lunghezza variabile siano piene al 100%.The bytes added to Max_Var_Key_Size are for tracking each variable column.This formula assumes that all variable-length columns are 100 percent full. Se si prevede una percentuale inferiore di utilizzo dello spazio di archiviazione delle colonne a lunghezza variabile, è possibile modificare il valore di Max_Var_Key_Size in base a tale percentuale per ottenere una stima più accurata delle dimensioni complessive della tabella.If you anticipate that a smaller percentage of the variable-length column storage space will be used, you can adjust the Max_Var_Key_Size value by that percentage to yield a more accurate estimate of the overall table size.

    Se non sono disponibili colonne a lunghezza variabile, impostare Variable_Key_Size su 0.If there are no variable-length columns, set Variable_Key_Size to 0.

  6. Calcolare le dimensioni della riga di indice:Calculate the index row size:

    Index_Row_Size = Fixed_Key_Size + Variable_Key_Size + Index_Null_Bitmap + 1 (per l'overhead dell'intestazione di una riga di indice) + 6 (per il puntatore ID della pagina figlio)Index_Row_Size = Fixed_Key_Size + Variable_Key_Size + Index_Null_Bitmap + 1 (for row header overhead of an index row) + 6 (for the child page ID pointer)

  7. Calcolare il numero di righe di indice per pagina (8096 byte liberi per pagina):Calculate the number of index rows per page (8096 free bytes per page):

    Index_Rows_Per_Page = 8096 / (Index_Row_Size + 2)Index_Rows_Per_Page = 8096 / (Index_Row_Size + 2)

    Poiché le righe di indice non si estendono su più pagine, il numero di righe di indice per pagina deve essere arrotondato alla riga completa più vicina.Because index rows do not span pages, the number of index rows per page should be rounded down to the nearest whole row. Il numero 2 nella formula si riferisce alla voce della riga nella matrice di slot della pagina.The 2 in the formula is for the row's entry in the page's slot array.

Passaggio 2.Step 2. Calcolare lo spazio utilizzato per l'archiviazione di informazioni sull'indice nel livello fogliaCalculate the Space Used to Store Index Information in the Leaf Level

Per stimare la quantità di spazio necessaria per archiviare il livello foglia dell'indice, effettuare le operazioni seguenti.You can use the following steps to estimate the amount of space that is required to store the leaf level of the index. Per completare questo passaggio, sono necessari i valori preservati al passaggio 1.You will need the values preserved from Step 1 to complete this step.

  1. Specificare il numero di colonne a lunghezza fissa e a lunghezza variabile incluse a livello foglia e calcolare lo spazio necessario per archiviarle:Specify the number of fixed-length and variable-length columns at the leaf level and calculate the space that is required for their storage:

    Nota

    È possibile estendere un indice non cluster includendo colonne non chiave oltre alle colonne chiave.You can extend a nonclustered index by including nonkey columns in addition to the index key columns. Tali colonne aggiuntive vengono archiviate solo al livello foglia dell'indice non cluster.These additional columns are only stored at the leaf level of the nonclustered index. Per altre informazioni, vedere Creare indici con colonne incluse.For more information, see Create Indexes with Included Columns.

    Nota

    È possibile combinare colonne varchar, nvarchar, varbinaryo sql_variant che causano il superamento del limite di 8.060 byte previsto per la larghezza totale definita della tabella.You can combine varchar, nvarchar, varbinary, or sql_variant columns that cause the total defined table width to exceed 8,060 bytes. La lunghezza di ogni colonna deve essere compresa nel limite di 8.000 byte per una colonna varchar, varbinaryo sql_variant e di 4.000 byte per le colonne nvarchar .The length of each one of these columns must still fall within the limit of 8,000 bytes for a varchar, varbinary, or sql_variant column, and 4,000 bytes for nvarchar columns. Le larghezze combinate di tali colonne possono tuttavia superare il limite di 8.060 byte in una tabella.However, their combined widths may exceed the 8,060 byte limit in a table. Lo stesso vale inoltre per le righe foglia dell'indice non cluster che presentano colonne incluse.This also applies to nonclustered index leaf rows that have included columns.

    Se l'indice non cluster non dispone di colonne incluse, utilizzare i valori del passaggio 1, incluse le eventuali modifiche determinate al passaggio 1.3:If the nonclustered index does not have any included columns, use the values from Step 1, including any modifications determined in Step 1.3:

    Num_Leaf_Cols = Num_Key_ColsNum_Leaf_Cols = Num_Key_Cols

    Fixed_Leaf_Size = Fixed_Key_SizeFixed_Leaf_Size = Fixed_Key_Size

    Num_Variable_Leaf_Cols = Num_Variable_Key_ColsNum_Variable_Leaf_Cols = Num_Variable_Key_Cols

    Max_Var_Leaf_Size = Max_Var_Key_SizeMax_Var_Leaf_Size = Max_Var_Key_Size

    Se l'indice non cluster dispone di colonne incluse, aggiungere i valori appropriati a quelli del passaggio 1, incluse le eventuali modifiche del passaggio 1.3.If the nonclustered index does have included columns, add the appropriate values to the values from Step 1, including any modifications in Step 1.3. Le dimensioni di una colonna dipendono dal tipo di dati e dalla lunghezza specificata.The size of a column depends on the data type and length specification. Per altre informazioni, vedere Tipi di dati (Transact-SQL).For more information, see Data Types (Transact-SQL).

    Num_Leaf_Cols = Num_Key_Cols + numero di colonne incluseNum_Leaf_Cols = Num_Key_Cols + number of included columns

    Fixed_Leaf_Size = Fixed_Key_Size + dimensioni massime in byte di tutte le colonne incluse a lunghezza fissaFixed_Leaf_Size = Fixed_Key_Size + total byte size of fixed-length included columns

    Num_Variable_Leaf_Cols = Num_Variable_Key_Cols + number of variable-length included columnsNum_Variable_Leaf_Cols = Num_Variable_Key_Cols + number of variable-length included columns

    Max_Var_Leaf_Size = Max_Var_Key_Size + dimensioni massime in byte di tutte le colonne incluse a lunghezza variabileMax_Var_Leaf_Size = Max_Var_Key_Size + maximum byte size of variable-length included columns

  2. Considerare l'indicatore di posizione delle righe di dati:Account for the data row locator:

    Se l'indice non cluster non è univoco, l'overhead per l'indicatore di posizione delle righe di dati è già stato considerato al passaggio 1.3 e non sono richieste modifiche ulteriori.If the nonclustered index is nonunique, the overhead for the data row locator has already been considered in Step 1.3 and no additional modifications are required. Procedere con il passaggio successivo.Go to the next step.

    Se l'indice non cluster è univoco, è necessario considerare l'indicatore di posizione delle righe di dati per tutte le righe al livello foglia.If the nonclustered index is unique, the data row locator must be accounted for in all rows at the leaf level.

    Se l'indice non cluster è su un heap, l'indicatore di posizione delle righe di dati corrisponde al RID dell'heap, ovvero a 8 byte.If the nonclustered index is over a heap, the data row locator is the heap RID (size 8 bytes).

    Num_Leaf_Cols = Num_Leaf_Cols + 1Num_Leaf_Cols = Num_Leaf_Cols + 1

    Num_Variable_Leaf_Cols = Num_Variable_Leaf_Cols + 1Num_Variable_Leaf_Cols = Num_Variable_Leaf_Cols + 1

    Max_Var_Leaf_Size = Max_Var_Leaf_Size + 8Max_Var_Leaf_Size = Max_Var_Leaf_Size + 8

    Se l'indice non cluster è su un indice cluster, l'indicatore di posizione delle righe di dati corrisponde alla chiave di clustering.If the nonclustered index is over a clustered index, the data row locator is the clustering key. Le colonne da combinare con la chiave dell'indice non cluster sono le colonne della chiave di clustering non incluse già nel set di colonne chiave dell'indice non cluster.The columns that must be combined with the nonclustered index key are those columns in the clustering key that are not already present in the set of nonclustered index key columns.

    Num_Leaf_Cols = Num_Leaf_Cols + numero di colonne chiave di clustering non nel set di colonne chiave di indice non cluster (+ 1 se l'indice cluster è non univoco)Num_Leaf_Cols = Num_Leaf_Cols + number of clustering key columns not in the set of nonclustered index key columns (+ 1 if the clustered index is nonunique)

    Fixed_Leaf_Size = Fixed_Leaf_Size + numero di colonne chiave di clustering a lunghezza fissa non nel set di colonne chiave di indice non clusterFixed_Leaf_Size = Fixed_Leaf_Size + number of fixed-length clustering key columns not in the set of nonclustered index key columns

    Num_Variable_Leaf_Cols = Num_Variable_Leaf_Cols + numero di colonne chiave di clustering a lunghezza variabile non nel set di colonne chiave di indice non cluster (+ 1 se l'indice cluster è non univoco)Num_Variable_Leaf_Cols = Num_Variable_Leaf_Cols + number of variable-length clustering key columns not in the set of nonclustered index key columns (+ 1 if the clustered index is nonunique)

    Max_Var_Leaf_Size = Max_Var_Leaf_Size + dimensione in byte delle colonne chiave di clustering a lunghezza variabile non nel set di colonne chiave di indice non cluster (+ 4 se l'indice cluster è non univoco)Max_Var_Leaf_Size = Max_Var_Leaf_Size + size in bytes of the variable-length clustering key columns not in the set of nonclustered index key columns (+ 4 if the clustered index is nonunique)

  3. Calcolare le dimensioni della mappa di bit Null:Calculate the null bitmap size:

    Leaf_Null_Bitmap = 2 + ((Num_Leaf_Cols + 7) / 8)Leaf_Null_Bitmap = 2 + ((Num_Leaf_Cols + 7) / 8)

    Deve essere utilizzata solo la parte Integer dell'espressione precedente.Only the integer part of the previous expression should be used. Eliminare le parti restanti.Discard any remainder.

  4. Calcolare le dimensioni dei dati a lunghezza variabile:Calculate the variable length data size:

    Se sono presenti colonne a lunghezza variabile nella chiave dell'indice, incluse eventuali colonne chiave di clustering necessarie descritte al passaggio 2.2, determinare lo spazio utilizzato per archiviare le colonne all'interno della riga di indice:If there are variable-length columns in the index key, including any necessary clustering key columns as described previously in Step 2.2, determine how much space is used to store the columns within the index row:

    Variable_Leaf_Size = 2 + (Num_Variable_Leaf_Cols x 2) + Max_Var_Leaf_SizeVariable_Leaf_Size = 2 + (Num_Variable_Leaf_Cols x 2) + Max_Var_Leaf_Size

    I byte aggiunti a Max_Var_Key_Size servono a tenere traccia di ogni colonna variabile. Questa formula si basa sul presupposto che tutte le colonne a lunghezza variabile siano piene al 100%.The bytes added to Max_Var_Key_Size are for tracking each variable column.This formula assumes that all variable-length columns are 100 percent full. Se si prevede una percentuale inferiore di utilizzo dello spazio di archiviazione delle colonne di lunghezza variabile, è possibile modificare il valore Max_Var_Leaf_Size in base a tale percentuale per ottenere una stima più precisa delle dimensioni complessive della tabella.If you anticipate that a smaller percentage of the variable-length column storage space will be used, you can adjust the Max_Var_Leaf_Size value by that percentage to yield a more accurate estimate of the overall table size.

    Se non sono disponibili colonne a lunghezza variabile, impostare Variable_Leaf_Size su 0.If there are no variable-length columns, set Variable_Leaf_Size to 0.

  5. Calcolare le dimensioni della riga di indice:Calculate the index row size:

    Leaf_Row_Size = Fixed_Leaf_Size + Variable_Leaf_Size + Leaf_Null_Bitmap + 1 (per l'overhead dell'intestazione di una riga di indice)Leaf_Row_Size = Fixed_Leaf_Size + Variable_Leaf_Size + Leaf_Null_Bitmap + 1 (for row header overhead of an index row)

  6. Calcolare il numero di righe di indice per pagina (8096 byte liberi per pagina):Calculate the number of index rows per page (8096 free bytes per page):

    Leaf_Rows_Per_Page = 8096 / (Leaf_Row_Size + 2)Leaf_Rows_Per_Page = 8096 / (Leaf_Row_Size + 2)

    Poiché le righe di indice non si estendono su più pagine, il numero di righe di indice per pagina deve essere arrotondato alla riga completa più vicina.Because index rows do not span pages, the number of index rows per page should be rounded down to the nearest whole row. Il numero 2 nella formula si riferisce alla voce della riga nella matrice di slot della pagina.The 2 in the formula is for the row's entry in the page's slot array.

  7. Calcolare il numero di righe libere riservate per pagina, sulla base del fattore di riempimento specificato:Calculate the number of reserved free rows per page, based on the fill factor specified:

    Free_Rows_Per_Page = 8096 x ((100 - Fill_Factor) / 100) / (Leaf_Row_Size + 2)Free_Rows_Per_Page = 8096 x ((100 - Fill_Factor) / 100) / (Leaf_Row_Size + 2)

    Il fattore di riempimento utilizzato nel calcolo è un valore intero, non una percentuale.The fill factor used in the calculation is an integer value instead of a percentage. Poiché le righe non si estendono su più pagine, il numero di righe per pagina deve essere arrotondato alla riga completa più vicina.Because rows do not span pages, the number of rows per page should be rounded down to the nearest whole row. Aumentando il fattore di riempimento, in ciascuna pagina verrà archiviata una quantità maggiore di dati e il numero di pagine diminuirà.As the fill factor grows, more data will be stored on each page and there will be fewer pages. Il numero 2 nella formula si riferisce alla voce della riga nella matrice di slot della pagina.The 2 in the formula is for the row's entry in the page's slot array.

  8. Calcolare il numero di pagine necessario per archiviare tutte le righe:Calculate the number of pages required to store all the rows:

    Num_Leaf_Pages = Num_Rows / (Leaf_Rows_Per_Page - Free_Rows_Per_Page)Num_Leaf_Pages = Num_Rows / (Leaf_Rows_Per_Page - Free_Rows_Per_Page)

    Il numero di pagine stimato deve essere arrotondato alla pagina intera più vicina.The number of pages estimated should be rounded up to the nearest whole page.

  9. Calcolare le dimensioni dell'indice (8192 byte totali per pagina):Calculate the size of the index (8192 total bytes per page):

    Leaf_Space_Used = 8192 x Num_Leaf_PagesLeaf_Space_Used = 8192 x Num_Leaf_Pages

Passaggio 3.Step 3. Calcolare lo spazio utilizzato per l'archiviazione di informazioni sull'indice nei livelli non fogliaCalculate the Space Used to Store Index Information in the Non-leaf Levels

Per stimare la quantità di spazio necessaria per archiviare i livelli intermedio e radice dell'indice, effettuare le operazioni seguenti:Follow these steps to estimate the amount of space that is required to store the intermediate and root levels of the index. Per completare questo passaggio, sono necessari i valori preservati ai passaggi 2 e 3.You will need the values preserved from steps 2 and 3 to complete this step.

  1. Calcolare il numero di livelli non foglia dell'indice:Calculate the number of non-leaf levels in the index:

    Non-leaf_Levels = 1 + log (Index_Rows_Per_Page) (Num_Leaf_Pages / Index_Rows_Per_Page)Non-leaf Levels = 1 + log( Index_Rows_Per_Page) (Num_Leaf_Pages / Index_Rows_Per_Page)

    Arrotondare questo valore per eccesso al numero intero più vicino.Round this value up to the nearest whole number. Nel valore non è incluso il livello foglia dell'indice non cluster.This value does not include the leaf level of the nonclustered index.

  2. Calcolare il numero di pagine non foglia dell'indice:Calculate the number of non-leaf pages in the index:

    Num_Index_Pages = ∑Level (Num_Leaf_Pages/Index_Rows_Per_Page^Level)dove 1 <= Level <= LevelsNum_Index_Pages = ∑Level (Num_Leaf_Pages/Index_Rows_Per_Page^Level)where 1 <= Level <= Levels

    Arrotondare ogni addendo al numero intero più vicino.Round each summand up to the nearest whole number. Per un esempio semplice, considerare un indice in cui Num_Leaf_Pages = 1000 e Index_Rows_Per_Page = 25.As a simple example, consider an index where Num_Leaf_Pages = 1000 and Index_Rows_Per_Page = 25. Nel primo livello dell'indice sopra il livello foglia vengono archiviate 1000 righe di indice, ovvero una riga di indice per pagina foglia, ed è possibile inserire 25 righe di indice per pagina.The first index level above the leaf level stores 1000 index rows, which is one index row per leaf page, and 25 index rows can fit per page. Per archiviare le 1000 righe di indice, sono quindi necessarie 40 pagine.This means that 40 pages are required to store those 1000 index rows. Nel livello successivo dell'indice devono invece essere archiviate 40 righe,The next level of the index has to store 40 rows. pertanto sono necessarie 2 pagine.This means that it requires 2 pages. Nel livello finale dell'indice devono essere archiviate 2 righe,The final level of the index has to store 2 rows. pertanto è necessaria una sola pagina.This means that it requires 1 page. Si ottengono quindi 43 pagine di indice non foglia.This yields 43 non-leaf index pages. Se nella formula precedente si utilizzano questi numeri, il risultato sarà il seguente:When these numbers are used in the previous formulas, the result is as follows:

    Non-leaf_Levels = 1 + log(25) (1000 / 25) = 3Non-leaf_Levels = 1 + log(25) (1000 / 25) = 3

    Num_Index_Pages = 1000/(25^3)+ 1000/(25^2) + 1000/(25^1) = 1 + 2 + 40 = 43, ovvero il numero di pagine descritto nell'esempio.Num_Index_Pages = 1000/(25^3)+ 1000/(25^2) + 1000/(25^1) = 1 + 2 + 40 = 43, which is the number of pages described in the example.

  3. Calcolare le dimensioni dell'indice (8192 byte totali per pagina):Calculate the size of the index (8192 total bytes per page):

    Index_Space_Used = 8192 x Num_Index_PagesIndex_Space_Used = 8192 x Num_Index_Pages

Passaggio 4.Step 4. Sommare i valori calcolatiTotal the Calculated Values

Sommare i valori ottenuti nei due passaggi precedenti:Total the values obtained from the previous two steps:

Dimensioni indice non cluster (byte) = Leaf_Space_Used + Index_Space_usedNonclustered index size (bytes) = Leaf_Space_Used + Index_Space_used

Il calcolo non prende in considerazione i fattori seguenti:This calculation does not consider the following:

  • PartizionamentoPartitioning

    L'overhead dello spazio derivante dal partizionamento è minimo, ma difficile da calcolare.The space overhead from partitioning is minimal, but complex to calculate. Non è fondamentale includerlo.It is not important to include.

  • Pagine di allocazioneAllocation pages

    Esiste almeno una pagina IAM utilizzata per tenere traccia delle pagine allocate su un heap, ma l'overhead dello spazio è minimo e non è presente alcun algoritmo per calcolare in modo deterministico l'esatto numero di pagine IAM che verranno utilizzate.There is at least one IAM page used to track the pages allocated to a heap, but the space overhead is minimal and there is no algorithm to deterministically calculate exactly how many IAM pages will be used.

  • Valori LOBLarge object (LOB) values

    L'algoritmo per determinare con esattezza la quantità di spazio usata per archiviare i tipi di dati LOB varchar(max), varbinary(max), nvarchar(max), text, ntext, xmle image è complesso.The algorithm to determine exactly how much space will be used to store the LOB data types varchar(max), varbinary(max), nvarchar(max), text, ntext, xml, and image values is complex. È comunque sufficiente aggiungere le dimensioni medie dei valori LOB previsti, moltiplicarle per Num_Rowse aggiungere il prodotto alle dimensioni totali dell'indice non cluster.It is sufficient to just add the average size of the LOB values expected, multiply by Num_Rows, and add that to the total nonclustered index size.

  • CompressioneCompression

    Non è possibile pre-calcolare la dimensione di un indice compresso.You cannot pre-calculate the size of a compressed index.

  • Colonne di tipo sparseSparse columns

    Per informazioni sui requisiti di spazio delle colonne di tipo sparse, vedere Utilizzo di colonne di tipo sparse.For information about the space requirements of sparse columns, see Use Sparse Columns.

Vedere ancheSee Also

Descrizione di indici cluster e non cluster. Clustered and Nonclustered Indexes Described
Creare indici non cluster Create Nonclustered Indexes
Creare indici cluster Create Clustered Indexes
Stima delle dimensioni di una tabella Estimate the Size of a Table
Stima delle dimensioni di un indice cluster Estimate the Size of a Clustered Index
Stima delle dimensioni di un heap Estimate the Size of a Heap
Stima delle dimensioni di un databaseEstimate the Size of a Database