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,继续写笔记。


相关推荐
这个DBA有点耶9 分钟前
银行业市占率最高的国产数据库是谁?先搞清楚“市占率”的四种口径
数据库·程序员·架构
用户6279947182621 小时前
南大通用GBase 8a之基于审计日志的冷温热数据分析
数据库
数据库小学妹1 小时前
数据库运维五级成熟度:监控、备份、高可用怎么串起来
运维·数据库·监控
一个天蝎座的程序猿1 小时前
为了给报表提速,我把金仓KES的列存储折腾了个遍:聊聊KES的技术能力
数据库
飞越未来云城的霓虹飞猪1 小时前
AI 数据库地图:从 PostgreSQL 到向量数据库,一次看懂 AI 时代的数据底座
数据库
不像程序员的程序媛1 小时前
导出mysql数据结构
数据库·mysql
GlobalTradercrb1 小时前
独立站SEO先写博客还是先优化产品页?看站点阶段
数据库·人工智能·google·pdf·go·seo
PingCAP2 小时前
善战者无赫赫之功:消费金融核心系统的数据库选型与升级路径
数据库·分布式·架构
花间相见2 小时前
【计算基础|MySQL09】索引(下):失效与设计
数据库·后端·面试
张宇Joaquin2 小时前
Linux系统下磁盘扇区512n、512e和4kn的区别
linux·运维·数据库