Domanda

Sto cercando di understnad come alloca e riserve di SQL Server spazio.

Dopo aver eseguito gli esempi l'articolo "Come disegno tabella può influire sulla prestazione di SQL Server?" [1], ho ricevuto i risultati [My 1.1] deviare da quelli di cui all'articolo [1.1].
Perché?

Perché in un caso lo spazio eccessivo è riservato / assegnati (tutti i casi in [1]), ma non in un altro [My 1.1]?
(Si noti che in [1] in entrambi i casi l'eccessivo spazio è riservato, anche se sul mio computer solo in uno dei casi)

Come è spazio assegnato, riservato da SQL Server?
E come posso controllare / gestirlo?

[1] ======
Come design del tavolo può influire le prestazioni di SQL Server?
http://sqlserver-training.com/ how-table-design-can-impatto-your-sql-server-prestazioni

[My 1.1]
I miei risultati deviare da [1] sotto

name                               rows  reserved  data     index_size  unused
---------------------------------- ----- --------- -------- ----------- ---------
Fixed_Lenght_Row_Table_Optimised   10000 40008 KB  40000 KB 8 KB        0 KB

[1.1] Risultati in [1] deviando dalla mia sopra

name                               rows  reserved  data     index_size  unused
---------------------------------- ----- --------- -------- ----------- ---------
Fixed_Lenght_Row_Table_Optimised   10000 40072 KB  40000 KB 8 KB        64 KB

[1.2]
I risultati di [1] in coincidenza con la mia

name                                 rows  reserved  data     index_size  unused
----------------------------------   ----- --------- -------- ----------- ---------
Fixed_Lenght_Row_Table_Non_Optimised 10000 80072 KB  80000 KB 8 KB        64 KB
È stato utile?

Soluzione

L'articolo del collegamento è dubbia nel migliore dei casi. Non specificare quale versione di SQL Server per l'uso, e quali sono le varie opzioni abilitati / disabilitati. Dal momento che SQL Server 2005 non c'è fila di storage di piccole pallonetto per le colonne oltre rovesciando il limite 8K (vedi di tabelle e indici Organizzazione ), ci sono di default contro in fila fuori-di-fila opzioni (vedere sp_tableoption ) e ci sono molte opzioni di compressione ( a livello di riga , a livello di pagina , Unicode ).

Per informazioni accurate vorrei bastone alla documentazione ufficiale del prodotto, a partire dalla Planning e architettura (motore di database) . Per una lettura più digeribile, acquistare uno dei libri ben consolidati, come Microsoft SQL Server 2008 Internals o Inside Microsoft SQL Server 2005:. Il motore di archiviazione

Altri suggerimenti

Ha senso: hai 64k spazio inutilizzato. Si vedono spesso piccole differenze di spazio riservato come questo

Mi piacerebbe anche farlo funzionare in questo modo anche con il 2 ° parametro. Può fare alcuna differenza

EXEC [sp_spaceused][1] 'Fixed_Lenght_Row_Table_Non-Optimised', 'true'

E poi da sp_spaceused

  

Quando si rilascia o ricostruire grande   indici, o goccia o troncare grandi   tavoli, il Motore di database posticipa la   deallocazioni pagina reali, e la loro   blocchi associati, fino a dopo la   commit di transazione. goccia differite   operazioni non rilasciano allocati   spazio immediatamente. quindi, il   valori restituiti dalla sp_spaceused   subito dopo la caduta o   troncare un grande oggetto non può   riflettere l'effettivo spazio su disco   a disposizione. Per ulteriori informazioni su   allocazioni differita, vedere Cadute e   Ricostruire oggetti di grandi dimensioni.

Infine, avrete tabelle che avranno 4000 byte + righe? Se si desidera ignorare per ottimizzare, mi piacerebbe dire che sei prematuro ... basta fare l'implementazione del progetto è corretto (sono fasi distinte)

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