SQL小技巧之替换、统计表字段存储数据字节大小。

文章目录

概要

最近在工作中要进行数据迁移,对有些大字段需要进行存储大小的统计,因此就总结了这篇文章


DATALENGTH函数

用于返回任何表达式的数据长度(以字节为单位)。这对于了解字段或变量在数据库中的实际存储大小非常有用,尤其是在处理可变长度的数据类型(如 VARCHAR, NVARCHAR, VARBINARY 等)时。

sql 复制代码
SELECT MAX(DATALENGTH(RESULT_DATA)) FROM KISC_INTELLECT_PRODUCER_LOG
SELECT MAX(DATALENGTH(ACCEPT_PARAM)) FROM KISC_INTELLECT_PRODUCER_LOG

SELECT MAX(DATALENGTH(RESULT_PARAM)) FROM KISC_INTELLECT_BIZ_LOG_DETAIL
SELECT MAX(DATALENGTH(RESULT)) FROM KISC_INTELLECT_BIZ_LOG_DETAIL
  • DATALENGTH 函数返回的是字段值的字节长度。如果你想要将字节长度转换为千字节(KB),你可以简单地将字节数除以 1024。

例如,如果你有一个字段,其 DATALENGTH 返回 3399806 字节,你可以使用以下公式来计算它占用的 KB 数:

sql 复制代码
KB = DATALENGTH(字段名) / 1024
KB = 3399806 / 1024 ≈ 3324.23 KB

REPLACE、SUBSTRING函数配合使用

这两个函数搭配主要在更新字段数据的时候,进行字符串精确替换,但是这种也存在一定的缺陷,需要字符串比较固定的。

话不多说,直接上例子:

sql 复制代码
SELECT TOP 100 SUBSTRING(RESULT,22,6),SUBSTRING(RESULT,354,18) FROM KISC_INTELLECT_BIZ_LOG_DETAIL WHERE RULE_CODE = '30001'
UPDATE KISC_INTELLECT_BIZ_LOG_DETAIL SET RESULT = REPLACE(CAST(RESULT AS NVARCHAR(2000)),SUBSTRING(RESULT,354,18),'123456123456781234') WHERE RULE_CODE = '30001';

小结

今天就先总结到这里了,后续遇到更有意思的sql,继续写笔记。


相关推荐
睡不醒男孩030823几秒前
CLup篇之数据库传统运维对比
运维·数据库
梓䈑28 分钟前
C++大模型统一接入引擎(第三篇):模型管理、会话持久化与SDK门面封装的完整实现
数据库·c++
日取其半万世不竭29 分钟前
PostgreSQL 跑在 Docker 里怎么备份?恢复成功才算备份成功
数据库·docker·postgresql
奈斯ing29 分钟前
花了三个月,我写了个RDS管控平台(目前进度一半)
数据库·管控平台
Hoxy.R38 分钟前
记录一次 Oracle 10g USERS 表空间在线扩容
数据库·oracle
2601_956743681 小时前
2026 上海软件定制开发公司:依托 D-coding 解析企业级定制开发的技术方案与落地全路径
大数据·数据库·人工智能·软件开发·开发经验·上海
睡不醒男孩0308231 小时前
CLup篇之达梦数据库管理
运维·服务器·数据库
霖霖总总1 小时前
[MongoDB小技巧10]MongoDB 数组查询深度解析:$size、$all 与 $in 的核心机制与避坑指南
数据库·mongodb
BomanGe31 小时前
NSK直线导轨LH20HL替代升级指南
运维·服务器·数据库·经验分享·规格说明书
MatrixOrigin1 小时前
MatrixOne Git4Data 技术详解(三):MatrixOne 架构及 Git4Data 原理解析,快照、Diff、Merge 凭什么这么快
数据库·人工智能·数据平台·矩阵起源·数据底座