SQL Server压缩字符串存储
生产中遇到一种场景, 生产线上传测试结果的XML文件到数据库, 数据文件大概在7万个字符,保存成文件的大小为70KB左右。
在写入指定的表时, 经常出现系统卡顿, 后台队列等待时间较长的情况。
问题排查一直持续了10小时左右。 有修改测试软件, 有新建保存测试记录的表。 最后选择压缩上传的XML文件进行保存, 解决了这个问题。
DECLARE @XmlData NVARCHAR(MAX); DECLARE @CPSXmlData VARBINARY(MAX); SET @XmlData = ''; -- 把字符串转换成XML格式 SELECT CAST(@XmlData AS XML) AS XMLFmt -- 压缩字符中成 VARBINARY 二进制数据 SELECT @CPSXmlData = COMPRESS(@XmlData); SELECT @CPSXmlData AS CompressData -- 把压缩的字符串解压, 并转换成字符串 SELECT CONVERT(NVARCHAR(MAX), DECOMPRESS(@CPSXmlData)) AS SourceStr 10001 08AA898852B4 2022-04-19 08:13:33 161.54 2022-04-19 08:16:14 2300078 0 1 0 BOBCal 2022-04-19 08:16:14 9990089926 20001 10001 08AA898852B4 信息写入 1 0 2022.04.19 08:13:33 1 1 2022.04.19 08:13:33 30001 20001 08AA898852B4 1 2022.04.19 08:13:33 26.00 2022-04-19 08:13:59 0 2022.04.19 08:13:33 SoftVesion:V1.1.10P7N2,CreateTime:2021-10-12 14:54:45,HardVesion:V1.1.05,MAC1:08:AA:89:88:52:B4,MAC2:08:AA:89:88:52:B5,MAC3:08:AA:89:88:52:B6,MAC4:08:AA:89:88:52:B7,MAC5:08:AA:89:88:52:B8,MAC6:08:AA:89:88:52:B9,GPON SN前缀:ZTEG,GPONSN:CEC1D33A,GPONSNPWD:GCEC1D33A,VoipAgm:4,WEBUSER:user,WEBPASS:user,OUI_START:08AA89,OUI_END:ZTE0QHEN4G00934,SSID1:ZTE_2.4G_7Vujq5,PASSWORD1:4eiCruRU,VoipAgm:4,SSID1_5G:ZTE_5G_7Vujq5,PASSWORD1_5G:4eiCruRU, 40001 30001 08AA898852B4 2022.04.19 08:13:33 2022-04-19 08:13:59 1 信息写入 PASS 20002 10001 08AA898852B4 TX校准 2 0 2022.04.19 08:15:04 1 1 2022.04.19 08:15:04 30002 20002 08AA898852B4 1 2022.04.19 08:15:04 9.00 2022-04-19 08:15:13 0 2022.04.19 08:15:04 ,DAC=177,TX光值:2.36 40002 30002 08AA898852B4 2022.04.19 08:15:04 2022-04-19 08:15:13 1 TX校准 PASS 20003 10001 08AA898852B4 TX DDMI 3 0 2022.04.19 08:15:13 1 1 2022.04.19 08:15:13 30003 20003 08AA898852B4 1 2022.04.19 08:15:13 4.00 2022-04-19 08:15:17 0 2022.04.19 08:15:13 calc1:2997.82353207439 40003 30003 08AA898852B4 2022.04.19 08:15:13 2022-04-19 08:15:17 1 TX DDMI PASS 20004 10001 08AA898852B4 TX DDMI Test 4 0 2022.04.19 08:15:17 1 1 2022.04.19 08:15:17 30004 20004 08AA898852B4 1 2022.04.19 08:15:17 2.00 2022-04-19 08:15:19 0 2022.04.19 08:15:17 功率器读取=2.4 dBm,,寄存器读值=2.41172786770047 dBm 40004 30004 08AA898852B4 2022.04.19 08:15:17 2022-04-19 08:15:19 1 TX DDMI Test PASS 20005 10001 08AA898852B4 消光比校准 5 0 2022.04.19 08:15:19 1 1 2022.04.19 08:15:19 30005 20005 08AA898852B4 1 2022.04.19 08:15:19 11.00 2022-04-19 08:15:30 0 2022.04.19 08:15:19 13.46 dB 40005 30005 08AA898852B4 2022.04.19 08:15:19 2022-04-19 08:15:30 1 消光比校准 PASS 20006 10001 08AA898852B4 Bias电流测试 6 0 2022.04.19 08:15:32 1 1 2022.04.19 08:15:32 30006 20006 08AA898852B4 1 2022.04.19 08:15:32 2.00 2022-04-19 08:15:34 0 2022.04.19 08:15:32 MOD_MAX:104,Bias:13.2,Mod:30.4 40006 30006 08AA898852B4 2022.04.19 08:15:32 2022-04-19 08:15:34 1 Bias电流测试 PASS 20007 10001 08AA898852B4 RX DDMI 7 0 2022.04.19 08:15:34 1 1 2022.04.19 08:15:34 30007 20007 08AA898852B4 1 2022.04.19 08:15:34 9.00 2022-04-19 08:15:43 0 2022.04.19 08:15:34 slopeP1:0.360252827939365,slopeP2:0,offset-4.30767174624793 40007 30007 08AA898852B4 2022.04.19 08:15:34 2022-04-19 08:15:43 1 RX DDMI PASS 20008 10001 08AA898852B4 RX DDMI Test 8 0 2022.04.19 08:15:43 1 1 2022.04.19 08:15:43 30008 20008 08AA898852B4 1 2022.04.19 08:15:43 6.00 2022-04-19 08:15:49 0 2022.04.19 08:15:43 RXTestPoint1:-6.96587929403258,RXTestPoint2:-14.9757288001557,RXTestPoint3:-20.0877392430751,RXTestPoint4:-25.2287874528034,RXTestPoint5:-30.4575749056068 40008 30008 08AA898852B4 2022.04.19 08:15:43 2022-04-19 08:15:49 1 RX DDMI Test PASS 20009 10001 08AA898852B4 LOS Cal 9 0 2022.04.19 08:15:49 1 1 2022.04.19 08:15:49 30009 20009 08AA898852B4 1 2022.04.19 08:15:49 2.00 2022-04-19 08:15:51 0 2022.04.19 08:15:49 LosLevel:28 40009 30009 08AA898852B4 2022.04.19 08:15:49 2022-04-19 08:15:51 1 LOS Cal PASS 200010 10001 08AA898852B4 LOS测试 10 0 2022.04.19 08:15:51 1 1 2022.04.19 08:15:51 300010 200010 08AA898852B4 1 2022.04.19 08:15:51 2.00 2022-04-19 08:15:53 0 2022.04.19 08:15:51 LOS TEST OK 400010 300010 08AA898852B4 2022.04.19 08:15:51 2022-04-19 08:15:53 1 LOS测试 PASS 200011 10001 08AA898852B4 灵敏度测试 11 0 2022.04.19 08:15:53 1 1 2022.04.19 08:15:53 300011 200011 08AA898852B4 1 2022.04.19 08:15:53 13.00 2022-04-19 08:16:06 0 2022.04.19 08:15:53 ,-28.5 400011 300011 08AA898852B4 2022.04.19 08:15:53 2022-04-19 08:16:06 1 灵敏度测试 PASS 200012 10001 08AA898852B4 上传电压测试 12 0 2022.04.19 08:16:06 1 1 2022.04.19 08:16:06 300012 200012 08AA898852B4 1 2022.04.19 08:16:06 1.00 2022-04-19 08:16:07 0 2022.04.19 08:16:06 3.2682 400012 300012 08AA898852B4 2022.04.19 08:16:06 2022-04-19 08:16:07 1 上传电压测试 PASS 200013 10001 08AA898852B4 上传温度测试 13 0 2022.04.19 08:16:07 1 1 2022.04.19 08:16:07 300013 200013 08AA898852B4 1 2022.04.19 08:16:07 0.00 2022-04-19 08:16:07 0 2022.04.19 08:16:07 42.21875 ℃ 400013 300013 08AA898852B4 2022.04.19 08:16:07 2022-04-19 08:16:07 1 上传温度测试 PASS 200014 10001 08AA898852B4 写A0信息 14 0 2022.04.19 08:16:07 1 1 2022.04.19 08:16:07 300014 200014 08AA898852B4 1 2022.04.19 08:16:07 3.00 2022-04-19 08:16:10 0 2022.04.19 08:16:07 BOSA_SN:GED-C04G3610351C,DataTime:20220419,checksum(0~62):24,checksum(64~94):131, 400014 300014 08AA898852B4 2022.04.19 08:16:07 2022-04-19 08:16:10 1 写A0信息 PASS