[SQL SERVER]

背景

WCF + EF + Sql Server 提供服务,包含一个数据上传功能,该方法接收客户端上传的对象列表(多张表单,每个表单包含千余条相关记录)。

瓶颈

WCF 默认有文件大小(4M)和超时限制(1分钟),直接保存对象列表会遇到超时问题,保存失败。
上传效率:大概 3分钟 / 千条记录,客户端调用会经常超时。

解决

1. 新建临时表,保存序列化后的对象列表,保存成功即返回上传成功响应给客户端。
2. 启动新线程,反序列化数据对象,执行正常数据分表插入逻辑。

临时表

如何查看字段中的海量数据?

varchar(MAC) 类型,最大可存储2^31-1字节。
如果在SSMS中以网络显示结果,最多可以显示43679 字节,其余部分会被截取省略。
可将结果列导出到文本文件进行查看。

微软建议

在 Microsoft SQL Server 的未来版本中,将删除 text、 ntext 和 image 数据类型。(避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序)
请使用 varchar (max)、nvarchar (max) 和 varbinary (max) 来代替。 

原文地址:https://www.cnblogs.com/jinzesudawei/p/7921210.html