|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.02.2008, 15:25 | #1 |
Пользователь
Регистрация: 29.06.2007
Сообщений: 13
|
Что выгоднее в данной ситуации?views,storeproc,query?
Здравствуйте!Возникла проблемная ситуация:
есть две сети,соединенные VPN-каналом.В сети L1 сервер S1, в L2- S2. Требуется пересылать серверу S2 данные выборки,сделанной на сервере S1.Можно посылать сам запрос на выборку,можно посылать запрос на выполнение хранимки выборки,можно послать получение данных view.Канал VPN может быть очень узок в некоторых местах и передавать большие объемы данных нет возможности(это может быть 50-100 Мб за один запрос). В чем кроется разница в использовании этих трех методов передачи данных?Что лучше?Может,есть другой способ? И еще один нюанс:данные надо передавать не периодически,а именно по запросу L1(в моем случае это по кнопке в программе). |
15.02.2008, 12:26 | #2 |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
я думаю, вам нужно уменьшить размер передаваемых данных... Типы данных привести в соответствие...
Процедуры работают быстрее, т.к они уже находятся в скомпилированном виде... view используют,когда нужно пользователю изменять полученные данные... Я думаю, этот вариант у Вас отпадает.... в процедуре правильно условие выборки сделайте, чтобы убрать дубликаты,если они Вам не нужны... в общем ,вам нужно уменьшить обем данных,которые будут передаваться....
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
|
15.02.2008, 12:36 | #3 |
Пользователь
Регистрация: 29.06.2007
Сообщений: 13
|
спасибо,так и сделаю.Значит вся оптимизация сводится к рациональной процедуре,которая...кстати,где ее лучше хранить?Что будет если она хранится на сервере S2 а данные выбирает с S1 и передает обратно?ЛУчше ,чтобы хранилась на S1?
|
15.02.2008, 14:02 | #4 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Процедуру хранят рядом с данными. Судя по вашему описанию из первого сообщения, выборки производит сервер 1. Значит, ему и карты в руки, т.е. сторедпроцы должны быть на нем.
|
15.02.2008, 14:31 | #5 | |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
Цитата:
Версия SP в данной ситуации не имеет никакого значения... чтобы уменьшить трафик, Вам нужно с типами полей поработать... Например,если у вас можно обойтись char, зачем использовать поле типа nvarchar. также с int и smallint... Структуру всегда можно будет поменять в дальнейшем,если у Вас возникнет необходимость в єтих типах... когда запрос большое кол-во записей вернет, то тут ві віграите в уменьшении обїема информации... Добавте условие, если єто возможно(если Вам не нужні двойники)...
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
|
|
15.02.2008, 14:58 | #6 |
Пользователь
Регистрация: 29.06.2007
Сообщений: 13
|
сразу возник нубский вопрос относительно передаваемых данных:если тип поля nvarchar и тип поля varchar.А данные в них одни и те же,то передается одно кол-во информации?А если разное,то как определить разницу?
|
15.02.2008, 20:29 | #7 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
"Нубские" вопросы решаются очень просто - смотрим документацию по используемой СУБД, а в ней - описание параметров для различных типов полей.
|
17.02.2008, 21:02 | #8 |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
под типы данных выделяется определенное количество байт...
Например: под int - 4 байта, а под tinyint - 1 байт... DateTime -8 , а smallDateTime -4. Если передавать нужно по сети, то каждый байт на счету. Cимвольніе(не фиксированные типы) имеют размер, который указывается Вами в скобках...Если введенная величина меньше, то остальное пространство заполняется пробелами... В varchar свободное пространство пробелами не дополняется.... Различие между ними (char,varChаr и т.д) в максимально возможном количестве символов, которіе можно вних поместить... Например char - 8000, Nchar и nvarChar - 4000.... Вібор между ними зависит от того используете ві Unicode или нет, и какой обїем инормации ві будете запихивать в данній тип поля Вам нужно просто почитать про типы...
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Последний раз редактировалось Pitbull; 17.02.2008 в 21:06. |
18.02.2008, 11:25 | #9 |
Пользователь
Регистрация: 29.06.2007
Сообщений: 13
|
я понимаю,сколько выделяется под какой тип данных,просто не знал,что когда идет передача конкретного значения передается именно такой объем данных,какой резервируется под данный тип вне зависимости от хранимого там значения.Т.е. если у меня varchar(255) а хранится там строка из 20 символов,то передается сколько?получается,что не 20 байт?это же строка переменной длины.Почитал про типы,написано мало и ответа на вопрос не нашел.
|
19.02.2008, 18:32 | #10 |
Форумчанин
Регистрация: 24.10.2007
Сообщений: 254
|
20 байт.varchar-это тип с переменной длинной.
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Литература в помощь при работе с базами данных | Speeker | БД в Delphi | 15 | 10.07.2014 09:39 |
Исключительные ситуации | FIIR | БД в Delphi | 5 | 19.06.2008 16:30 |
Исключительные ситуации | FIIR | Помощь студентам | 1 | 19.06.2008 13:50 |
Исключительные ситуации | Mickle | Общие вопросы Delphi | 6 | 07.10.2007 21:03 |