Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Database in Microsoft Fabric
U kunt de volgende stappen gebruiken om een schatting te maken van de hoeveelheid ruimte die nodig is voor het opslaan van gegevens in een heap:
Geef het aantal rijen op dat aanwezig is in de tabel:
- Num_Rows = aantal rijen in de tabel
Geef het aantal kolommen met vaste lengte en variabele lengte op en bereken de ruimte die nodig is voor de opslag:
Bereken de ruimte die elk van deze groepen kolommen inneemt binnen de gegevensrij. De grootte van een kolom is afhankelijk van het gegevenstype en de lengtespecificatie.
- Num_Cols = totaal aantal kolommen (vaste lengte en variabele lengte)
- Fixed_Data_Size = totale bytegrootte van alle kolommen met vaste lengte
- Num_Variable_Cols = aantal kolommen met variabele lengte
- Max_Var_Size = maximale totale bytegrootte van alle kolommen met variabele lengte
Een deel van de rij, ook wel de nullbitmap genoemd, is gereserveerd voor het beheren van de nullbaarheid van kolommen. De grootte ervan berekenen:
- Null_Bitmap = 2 + ((Num_Cols + 7) / 8)
Alleen het gehele getal van deze expressie moet worden gebruikt. Verwijder een restgetal.
De gegevensgrootte van de variabele lengte berekenen:
Als er kolommen met een variabele lengte in de tabel staan, bepaalt u hoeveel ruimte wordt gebruikt om de kolommen in de rij op te slaan:
- Variable_Data_Size = 2 + (Num_Variable_Cols x 2) + Max_Var_Size
De bytes die zijn toegevoegd aan Max_Var_Size zijn voor het bijhouden van elke kolom met variabele lengte. In deze formule wordt ervan uitgegaan dat alle kolommen met variabele lengte 100 procent vol zijn. Als u verwacht dat een kleiner percentage van de kolomopslagruimte met variabele lengte wordt gebruikt, kunt u de Max_Var_Size waarde met dat percentage aanpassen om een nauwkeurigere schatting te maken van de totale tabelgrootte.
Note
U kunt varchar, nvarchar, varbinaireof sql_variant kolommen combineren waardoor de totale gedefinieerde tabelbreedte groter is dan 8.060 bytes. De lengte van elk van deze kolommen moet nog steeds binnen de limiet van 8000 bytes vallen voor een varchar-, nvarchar, varbinaireof sql_variant kolom. De gecombineerde breedte kan echter groter zijn dan de limiet van 8.060 bytes in een tabel.
Als er geen kolommen met variabele lengte zijn, stelt u Variable_Data_Size in op 0.
De totale rijgrootte berekenen:
- = Row_Size + Fixed_Data_Size + Variable_Data_SizeNull_Bitmap + 4
De waarde 4 in de formule is de rijkopoverhead van de gegevensrij.
Het aantal rijen per pagina berekenen (8.096 gratis bytes per pagina):
- Rijen_per_pagina = 8096 / (Rij_grootte + 2)
Omdat rijen geen pagina's omvatten, moet het aantal rijen per pagina omlaag worden afgerond op de dichtstbijzijnde hele rij. De waarde 2 in de formule is voor de rij-invoer in de slot-array van de pagina.
Bereken het aantal pagina's dat nodig is om alle rijen op te slaan:
- = Num_Pages / Num_RowsRows_Per_Page
Het geschatte aantal pagina's moet worden afgerond op de dichtstbijzijnde hele pagina.
Bereken de hoeveelheid ruimte die nodig is voor het opslaan van de gegevens in de heap (totaal 8.192 bytes per pagina):
Heapgrootte (bytes) = 8192 x Num_Pages
Deze berekening houdt niet rekening met de volgende voorwaarden:
Partitionering: de ruimteoverhead van partitionering is minimaal, maar complex om te berekenen. Het is niet belangrijk om toe te voegen.
Toewijzingspagina's: er wordt ten minste één IAM-pagina gebruikt om de pagina's bij te houden die aan een heap zijn toegewezen, maar de ruimteoverhead is minimaal en er is geen algoritme om precies te berekenen hoeveel IAM-pagina's er worden gebruikt.
Grote objectwaarden (LOB): het algoritme om precies te bepalen hoeveel ruimte wordt gebruikt voor het opslaan van de LOB-gegevenstypen varchar(max), varbinary(max), nvarchar(max), tekst, ntextxml en afbeeldingswaarden zijn complex. Het is voldoende om alleen de gemiddelde grootte van de VERWACHTE LOB-waarden toe te voegen en dat toe te voegen aan de totale heapgrootte.
Compressie: u kunt de grootte van een gecomprimeerde heap niet vooraf berekenen.
Sparse-kolommen: Zie Sparse-kolommen gebruiken voor informatie over de ruimtevereisten voor sparsekolommen.
Verwante inhoud
- Heaps (tabellen zonder geclusterde indexen)
- geclusterde en niet-geclusterde indexen
- Een geclusterde index maken
- Niet-geclusterde indexen maken
- De grootte van een tabel schatten
- De grootte van een geclusterde index schatten
- De grootte van een niet-geclusterde index schatten
- De grootte van een database schatten