查找SQL中特定行占用的空间

时间:2011-11-09 08:52:58

标签: sql-server-2008 tsql

如何在SQL表中找到特定行占用的空间。

作为示例,请考虑以下示例: 有客户和相关订单。有客户表和订单表。

Table : Customer
Columns : Id, Name, Address, Occupation
PK : Id

Table : Order
Columns : OrderId, CustomerId, OrderDescription, OrderCost
PK : OrderId, CustomerId

在运行时,有两个客户,一个客户有10个订单,另一个客户有100个订单。

我需要编写一个查询,在给定客户ID的情况下,我应该返回此特定客户在Sql中消耗的总字节数。

任何建议或输入都会非常有用。

1 个答案:

答案 0 :(得分:1)

您可以根据这些答案计算出任何行的行长度:

然后,这是一个每行累加字节的问题。相同的行结构技术也适用于任何索引。

我不会为您编写完整的查询。如果您知道所有可变长度字段的长度,这是非常简单的。注意:使用DATALENGTH,而不是LEN,因为尾随空格和ANSI PADDING,你需要字节而不是字符。