Каков наиболее эффективный способ передачи данных из базы данных на сервер клиенту? - PullRequest
1 голос
/ 10 мая 2011

Интересно, как лучше всего передать данные из базы данных в службу WCF клиенту между этими двумя вариантами:

Вариант 1. У меня есть две таблицы в моей базе данных, «data1» и «data2». Таблица к связана с "data2Id". data2Id не уникален и может быть связан с более чем одним DATA.

data1:

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

data2:

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

Я бы тогда сделал SELECT с INNER JOIN, чтобы получить DATA в data2 с правильным dataId. Затем я отправил бы найденные строки в список

Вариант 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 ]

1 голос
/ 10 мая 2011

Полагаю, вы всегда хотите сделать все возможное, чтобы минимизировать объем данных, передаваемых по проводам (в пределах разумного)

Вам необходимо взвесить все за и против фильтрации данных на сервере (и отправки меньшего количества данных по проводам) и фильтрации данных на клиенте, что обеспечит вам большую гибкость (но с необходимыми затратами) время отправки данных по проводам)

0 голосов
/ 10 мая 2011

Ваш вопрос на самом деле сводится к тому, «стоит ли отправлять больше данных или передавать несколько запросов + наборы результатов?». Каждый новый запрос приводит к другому циклу, что, как правило, плохо, но затем возвращается 10000 строк, если вам нужно только 1000 из них. Ответ на самом деле зависит от того, сколько данных вы используете, и как часто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...