Hickman's outdone himself with this one.
Home of X #1 (2011)
seen from United States
seen from United States

seen from United States

seen from Malaysia
seen from United States
seen from United States
seen from United States

seen from China
seen from Germany

seen from Greece
seen from China
seen from Netherlands
seen from Germany

seen from United States
seen from United States
seen from United States
seen from China
seen from United States

seen from Malaysia
seen from United States
Hickman's outdone himself with this one.
Home of X #1 (2011)
SQL Server: Table Dimension
E' possibile conoscere la dimensione massima del record della tabella tramite lo script qui sotto. Per mantenere prestazini accettabili è consigliabile non superare la dimensione di 8060 byte per fare in modo che ogni record possa occupare al massimo un datapage.
USE DatabaseName GO declare @tabella sysname DECLARE @dimensione bigint /* Imposto la tabella di cui voglio controllare la lunghezza del record */ select @tabella = 'Agenzie' /* Trovo la lunghezza */ SELECT @dimensione = 10 + SUM ( CASE DATA_TYPE WHEN 'bigint' THEN 8 WHEN 'int' THEN 4 WHEN 'smallint' THEN 2 WHEN 'tinyint' THEN 1 WHEN 'bit' THEN 1 WHEN 'datetime' THEN 8 WHEN 'smalldatetime' THEN 4 WHEN 'decimal' THEN CASE WHEN (NUMERIC_PRECISION Between 1 And 9) THEN 5 WHEN (NUMERIC_PRECISION Between 10 And 19) THEN 9 WHEN (NUMERIC_PRECISION Between 20 And 28) THEN 13 WHEN (NUMERIC_PRECISION Between 29 And 38) THEN 17 END WHEN 'numeric' THEN CASE WHEN (NUMERIC_PRECISION Between 1 And 9) THEN 5 WHEN (NUMERIC_PRECISION Between 10 And 19) THEN 9 WHEN (NUMERIC_PRECISION Between 20 And 28) THEN 13 WHEN (NUMERIC_PRECISION Between 29 And 38) THEN 17 END WHEN 'money' THEN 8 WHEN 'smallmoney' THEN 4 WHEN 'float' THEN 8 WHEN 'real' THEN 4 WHEN 'timestamp' THEN 8 WHEN 'image' THEN 16 WHEN 'text' THEN 16 WHEN 'ntext' THEN 16 WHEN 'uniqueidentifier' THEN 16 ELSE CASE WHEN DATA_TYPE like 'var%' THEN CHARACTER_MAXIMUM_LENGTH + 2 WHEN DATA_TYPE like 'nvar%' THEN CHARACTER_MAXIMUM_LENGTH + 2 ELSE CHARACTER_MAXIMUM_LENGTH END END ) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @tabella IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE Like '%var%' And TABLE_NAME = @tabella) SET @dimensione = @dimensione + 2 /* Visualizzo i risultati */ SELECT -- Nome della tabella @tabella as [Tabella], -- Dimesione calcolata fino ad ora @dimensione + ( -- Calcolo maschera di bit per valori NULL select 2 + (((SELECT count(column_Name) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @tabella) + 7) / 8) ) + -- Overhead intestazione di riga 4 AS [Dimensione] /* Calcolo le righe per datapage */ declare @rowSize bigint set @rowSize = ( SELECT @dimensione + (SELECT 2 + (((SELECT count(column_Name) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @tabella) + 7) / 8) ) + 4 ) -- Calcolo il numero di righe: select 8060 / (@rowSize + 2) as numeroRighePerDataPage