将数据从数据库传输到服务器到客户端的最有效方法是什么?

时间:2011-05-10 15:53:12

标签: c# xml wcf tsql

我想知道在这两个选项之间将数据从数据库转移到客户端的WCF服务的最佳方法是什么:

选项1。 我的数据库中有两个表,“data1”和“data2”。 to表由“data2Id”链接。 data2Id不是唯一的,可以链接到多个DATA。

data1:

dataId | data2Id
----------------
 int   | int   
 int   | int   
 ...   | ...

data2:

data2Id| DATA
----------------
 int   | string
 int   | string

然后,我会使用SELECT进行INNER JOIN,以DATA data2获取正确的dataId。然后,我将在List

中发送找到的字符串

选项2。

data1:

dataId | DATA
----------------
 int   | XML
 int   | XML
 ...   | ...

XML看起来像那样:

<DATA>string</DATA>
<DATA>string</DATA>
<DATA>string</DATA>
<DATA>string</DATA>

然后我会SELECT使用想要的dataId的正确数据。然后我将XML发送到客户端来解析它。

通过WCF向客户端发送一个庞大的字符串列表会比发送XML并解析客户端更有效吗?

2 个答案:

答案 0 :(得分:1)

我想你总是希望尽力减少通过网络传输的数据量(理所当然)

您需要权衡过滤服务器上数据的优缺点(并通过线路发送较少的数据)并过滤客户端上的数据,这将为您提供更大的灵活性(但需要付出代价)时间通过电线发送数据)

答案 1 :(得分:0)

您的问题实际上归结为&#34;发送更多数据或传输多个查询+结果集是否更昂贵?&#34;。每个新查询都会导致另一次往返,这通常是一件坏事,但是如果你只需要1000行,那么返回10,000行。答案实际上取决于您访问的数据量以及访问频率。