知方可补不足~写了一个计算数据表占用存储空间的方法

简介:

这个例子是关于计算数据表中所有字段在一定的数据量下占用存储空间的情况,使用了sys.tables,SYSTYPES和SYSCOLUMNS几张系统表,意思就是遍历所有数据表,然后对表的所以字段的length进行sum,就可以了,方法很容易理解,没什么技术含量,但即起到了重要的效果。

DECLARE @tableName VARCHAR(50)
DECLARE @totalRecord BIGINT

SET @tableName = 'user_info'
SET @totalRecord = 1000000

SELECT  @tableName + '表中有' + LTRIM(STR(@totalRecord)) + '条数据时,占用的空间为:'
        + LTRIM(STR(SUM(c.length) * @totalRecord / 1024.0 / 1024.0)) + 'MB'
FROM    SYSTYPES T ,
        SYSCOLUMNS C
WHERE   T.XTYPE = C.XTYPE
        AND C.ID = ( SELECT ID
                     FROM   SYSOBJECTS
                     WHERE  NAME = @tableName
                   )
 
SELECT  TT.NAME ,
        DATA = @TOTALRECORD ,
        SIZE = ( SELECT STR(SUM(C.LENGTH) * @TOTALRECORD / 1024.0 / 1024.0)
                        + 'MB'
                 FROM   SYSTYPES T ,
                        SYSCOLUMNS C
                 WHERE  T.XTYPE = C.XTYPE
                        AND C.ID = TT.OBJECT_ID
               )
FROM    SYS.TABLES AS TT
ORDER BY TT.NAME

执行结果如下

怎么样,挺有意思吧!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:知方可补不足~写了一个计算数据表占用存储空间的方法,如需转载请自行联系原博主。

目录
相关文章
|
10月前
|
SQL 关系型数据库 MySQL
详解如何优雅实现先分组再组内排序取数据解决方案
本文介绍了在数据库查询中常见的业务需求:先对数据进行分组,然后在每组内按规则排序并取出特定记录。使用MySQL和Elasticsearch实现这一操作,并对比了不同方法的性能。具体包括: **MySQL实现**:通过窗口函数`ROW_NUMBER()`、子查询和JOIN关联查询三种方式实现分组排序取数据,并探讨了索引优化的效果。 **Elasticsearch实现**:利用`terms`聚合和`top_hits`聚合实现分组排序,适用于大规模数据场景。 推荐优先使用窗口函数,结合索引优化提升查询性能。对于小规模查询,可在应用层处理。 通过实例和性能对比,帮助读者选择最适合的实现方案。
371 16
详解如何优雅实现先分组再组内排序取数据解决方案
|
C语言
【C语言】sizeof 关键字详解
`sizeof` 关键字在C语言中用于计算数据类型或变量在内存中占用的字节数。它是一个编译时操作符,对性能没有影响。`sizeof` 可以用于基本数据类型、数组、结构体、指针等,了解和正确使用 `sizeof` 对于内存管理和调试程序非常重要。
763 2
|
存储 人工智能 编译器
【AI系统】昇腾数据布局转换
华为昇腾NPU采用独特的NC1HWC0五维数据格式,旨在优化AI处理器的矩阵乘法运算和访存效率。此格式通过将C维度分割为C1份C0,适应达芬奇架构的高效计算需求,支持FP16和INT8数据类型。此外,昇腾还引入了NZ分形格式,进一步提升数据搬运和矩阵计算效率。AI编译器通过智能布局转换,确保在不同硬件上达到最优性能。
708 3
|
存储 边缘计算 物联网
探索Edge Computing:边缘计算的崛起与实践
【10月更文挑战第3天】本文介绍了边缘计算的基本概念、工作原理、实施步骤以及面临的挑战。希望通过本文,读者能够了解边缘计算,并考虑在自己的项目中采用这种新的计算范式。
|
JavaScript 前端开发
Vue项目使用px2rem
Vue项目使用px2rem
一分钟了解什么是原码-反码-补码
一分钟了解什么是原码-反码-补码
|
机器学习/深度学习 人工智能 算法
阿里巴巴推出EMO,探索音频驱动的肖像视频生成的新领域
【2月更文挑战第9天】阿里巴巴推出EMO,探索音频驱动的肖像视频生成的新领域
2841 4
阿里巴巴推出EMO,探索音频驱动的肖像视频生成的新领域
|
网络协议 程序员 网络性能优化
传输层重要协议之UDP协议和TCP协议详解
传输层重要协议之UDP协议和TCP协议详解
|
存储 Java 索引
String和Char的区别
String和Char的区别
1802 1
|
Kubernetes 应用服务中间件 nginx
【K8S系列】快速初始化⼀个最⼩集群
【K8S系列】快速初始化⼀个最⼩集群
245 0

热门文章

最新文章