绝对最快的方式传输表格数据的SQL通过HTTP使用WebHttpBinding

本文关键字:通过 SQL HTTP WebHttpBinding 使用 数据 传输 方式 表格 | 更新日期: 2023-09-27 18:01:43

使用WCF端点在HTTP上传输SQL表格数据的最快方法是什么?

现在我用ESQL查询实体框架,然后将DataTable结果序列化成一个字节[],然后发送,然后在另一端反序列化,这似乎很慢。现在,序列化数据的大小大约是4000字节,有15000多行。我也尝试过OData服务,但它也相当慢。

与JSON相比,我认为JSON是最快的——一个只包含1048行SQL的JSON文件几乎是200000字节。数据的大小和通过HTTP传输的速度之间是否存在直接的关联?(似乎很直观,但我并不肯定)。

什么格式最快?我正在考虑将SQLDataReader转换为JSON并发送JSON,我认为应该表现良好,但我不确定。这将仅用于数据同步目的。

谢谢。

编辑我做了更多的追踪,看起来我最初的一些测量是错误的。请参阅下面以毫秒为单位的各个方法。

2011年7月11日星期一下午6:42:23:函数'反序列化'持续时间。运行时间:481 ms

2011年7月11日星期一下午6:42:23::函数'HttpRequest'的持续时间。运行时间:4776 ms

2011年7月11日星期一下午6:42:22::DataTable Length (Bytes) = 13047247 Bytes

上面引用的DataTable包含~7000行,看起来很陡峭,对吧?

绝对最快的方式传输表格数据的SQL通过HTTP使用WebHttpBinding

SqlDataReader是从数据库中获取数据的最快方法,是的。那么您将遇到的麻烦是,在通过HTTP发送之前,您需要完整地组装结果。您不能只在从数据库读取结果时对其进行流处理。JSON是一种相当紧凑的表示数据的方式,但是由于您必须一遍又一遍地重复列名,因此最好使用简单的纯文本选项卡分隔值文件。设置Content-type = text/plain,并在从SqlDataReader获取数据时清除数据中的任何制表符。你也可以考虑压缩你的结果——这取决于你的网络速度和你的web服务器的处理能力。

—EDIT—

正如Sean正确指出的,纯文本选项不是WCF解决方案。