计算表记录的最大存储容量?(Calculate the maximum storage size o

2019-08-08 13:46发布

有没有一种方法来确定一个记录的最大大小会是什么在SQL Server过去做手工? 例如:

CREATE TABLE test (
    id INT PRIMARY KEY IDENTITY(1, 1),
    name VARCHAR(256),
    test_date DATETIME
)

所以,如果我没有记错的话,在计算时,通过手该记录的最大的可能是272 bytes 。 不过,我有一个表,比多了很多列,我需要为多个表做到这一点,所以我想知道如果我能做到这一点用一个简单的查询。

我无法找到任何信息INFORMATION_SCHEMA.TABLES甚至INFORMATION_SCHEMA.COLUMNS ,我想我可以做一个简单的SUM的例子。 此外, sysobjectssyscolumns似乎没有掌握必要的信息。 在syscolumns表确实有一个length字段,但是这不是实际的存储容量。

谢谢大家!

Answer 1:

试试这个:

Select  schema_name(T.schema_id) As SchemaName,
        T.Name As TableName,
        Sum(C.max_length) As RowSize
From    sys.tables T
        Inner Join sys.columns C
            ON T.object_id = C.Object_ID
        INNER JOIN sys.types S
            On C.system_type_id = S.system_type_Id
Group By schema_name(T.schema_id),
        T.Name
Order By schema_name(T.schema_id),
        T.Name


文章来源: Calculate the maximum storage size of table record?