Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2008, 15:25   #1
Lunatikus
Пользователь
 
Регистрация: 29.06.2007
Сообщений: 13
По умолчанию Что выгоднее в данной ситуации?views,storeproc,query?

Здравствуйте!Возникла проблемная ситуация:
есть две сети,соединенные VPN-каналом.В сети L1 сервер S1, в L2- S2.
Требуется пересылать серверу S2 данные выборки,сделанной на сервере S1.Можно посылать сам запрос на выборку,можно посылать запрос на выполнение хранимки выборки,можно послать получение данных view.Канал VPN может быть очень узок в некоторых местах и передавать большие объемы данных нет возможности(это может быть 50-100 Мб за один запрос).
В чем кроется разница в использовании этих трех методов передачи данных?Что лучше?Может,есть другой способ?
И еще один нюанс:данные надо передавать не периодически,а именно по запросу L1(в моем случае это по кнопке в программе).
Lunatikus вне форума Ответить с цитированием
Старый 15.02.2008, 12:26   #2
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию

я думаю, вам нужно уменьшить размер передаваемых данных... Типы данных привести в соответствие...
Процедуры работают быстрее, т.к они уже находятся в скомпилированном виде...
view используют,когда нужно пользователю изменять полученные данные... Я думаю, этот вариант у Вас отпадает....
в процедуре правильно условие выборки сделайте, чтобы убрать дубликаты,если они Вам не нужны...
в общем ,вам нужно уменьшить обем данных,которые будут передаваться....
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Pitbull вне форума Ответить с цитированием
Старый 15.02.2008, 12:36   #3
Lunatikus
Пользователь
 
Регистрация: 29.06.2007
Сообщений: 13
По умолчанию

спасибо,так и сделаю.Значит вся оптимизация сводится к рациональной процедуре,которая...кстати,где ее лучше хранить?Что будет если она хранится на сервере S2 а данные выбирает с S1 и передает обратно?ЛУчше ,чтобы хранилась на S1?
Lunatikus вне форума Ответить с цитированием
Старый 15.02.2008, 14:02   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Процедуру хранят рядом с данными. Судя по вашему описанию из первого сообщения, выборки производит сервер 1. Значит, ему и карты в руки, т.е. сторедпроцы должны быть на нем.
mihali4 вне форума Ответить с цитированием
Старый 15.02.2008, 14:31   #5
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Процедуру хранят рядом с данными. Судя по вашему описанию из первого сообщения, выборки производит сервер 1. Значит, ему и карты в руки, т.е. сторедпроцы должны быть на нем.
Полностью согласен с Михаилом...
Версия SP в данной ситуации не имеет никакого значения...

чтобы уменьшить трафик, Вам нужно с типами полей поработать... Например,если у вас можно обойтись char, зачем использовать поле типа nvarchar. также с int и smallint... Структуру всегда можно будет поменять в дальнейшем,если у Вас возникнет необходимость в єтих типах... когда запрос большое кол-во записей вернет, то тут ві віграите в уменьшении обїема информации...
Добавте условие, если єто возможно(если Вам не нужні двойники)...
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Pitbull вне форума Ответить с цитированием
Старый 15.02.2008, 14:58   #6
Lunatikus
Пользователь
 
Регистрация: 29.06.2007
Сообщений: 13
По умолчанию

сразу возник нубский вопрос относительно передаваемых данных:если тип поля nvarchar и тип поля varchar.А данные в них одни и те же,то передается одно кол-во информации?А если разное,то как определить разницу?
Lunatikus вне форума Ответить с цитированием
Старый 15.02.2008, 20:29   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

"Нубские" вопросы решаются очень просто - смотрим документацию по используемой СУБД, а в ней - описание параметров для различных типов полей.
mihali4 вне форума Ответить с цитированием
Старый 17.02.2008, 21:02   #8
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 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.
Pitbull вне форума Ответить с цитированием
Старый 18.02.2008, 11:25   #9
Lunatikus
Пользователь
 
Регистрация: 29.06.2007
Сообщений: 13
По умолчанию

я понимаю,сколько выделяется под какой тип данных,просто не знал,что когда идет передача конкретного значения передается именно такой объем данных,какой резервируется под данный тип вне зависимости от хранимого там значения.Т.е. если у меня varchar(255) а хранится там строка из 20 символов,то передается сколько?получается,что не 20 байт?это же строка переменной длины.Почитал про типы,написано мало и ответа на вопрос не нашел.
Lunatikus вне форума Ответить с цитированием
Старый 19.02.2008, 18:32   #10
Domovoy
Форумчанин
 
Регистрация: 24.10.2007
Сообщений: 254
По умолчанию

20 байт.varchar-это тип с переменной длинной.
Domovoy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Литература в помощь при работе с базами данных 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