|
DB2: Коннект к удаленному серверу из хранимой процедуры на C (Си)
|
|||
---|---|---|---|
#18+
ну почему же не получится? обязательно получится. Првда коль уж процедурка возвращает resultset - то тут понятно что писать надо на CLI/ODBC. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2005, 10:47 |
|
DB2: Коннект к удаленному серверу из хранимой процедуры на C (Си)
|
|||
---|---|---|---|
#18+
Нет, это совсем не репликация. Т.е. не предполагается переносить в кэш все данные из таблиц-источников. Это все-таки сильно похоже на репликацию, а то, что реплицируются не все данные, не отменяет этой похожести. Репликация не обязана копировать все данные, она бывает выборочной. Потому что элементарно при неправильных результатах непонятно - у них ошибка или это такие данные неправильные) очень удобно со стороны базы делать SP и делегировать права на их запуск некоему webuser. После этого всегда можно _быстро_ отловить, например, ошибку - достаточно запустить процедуру из любого другого клиента. Да логических ошибок на клиенте и не возникает - просто потому, что за логику формирования ресальтсета отвечает одно подразделение ( а обычно вообще - один человек). Непонятно, почему это создать процедуру и дать право webuser'у вы можете, а view или табличную функцию нет. Против перерасхода ресурсов есть governor. После того как несколько раз нам нагрузкой "положили" сервер (ну просто ребята решили всю таблицу каждые 15 минут перегружать) мы им выдали процедуру и теперь они ее чаще, чем через 30 минут не могут запускать. Ну вот - еще одна репликация. Кстати, очень советую познакомится с новыми возможностями табличных функций у 8.2. А также select from I/U/D от, кажется, 8.1.4 и позднее - чрезвычайно легко сделать VIEW, дающий результат раз в 30 минут. Не говоря уже о том, что планы статических запросов для процедуры создаются и проходят через оптимизатор один раз, что в некоторых задачах помогает ускорить выполнение задачи раза в два например. Напротив, статика - это скорее минус. Отметим, что планы строятся быстро, и существенную разницу вы получите лишь, если выражение также выполняется быстро и вы выполняете его в цикле. Кто же заставляет вас строить планы для "динамики" в цикле? Сделайте prepare один раз, до входа в цикл, план скорее всего будет основываться на более свежей статистике (и никогда - на более старой). Ну я уже объяснил, что тут дело не столько в корпоративной политике, сколько в том, что сервер, с которого забирается информация, не наш. Это очень плохо и неудобно. хм... а если sp - источник данных на удаленном сервере не просто select * from table? И что? У DB2 SQL, что ли, слабый? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2005, 21:52 |
|
DB2: Коннект к удаленному серверу из хранимой процедуры на C (Си)
|
|||
---|---|---|---|
#18+
Виктор, возможно, что Вы правы. Уж точно правы в том, что неудобно, когда сервер не свой и\или нет возможности договориться о взаимоудобном взаимодействии. Если все так здорово без SP, то непонятно - для чего вообще они поддерживаются. 8-ки у нас пока нет (да и в любом случае - сомневаюсь, что будут переводить тот сервер на другую версию и\или что-то переписывать, так что там по любому хранимка). А что касается репликации, то тут все же не совсем то (может я не очень понимаю возможности и цели репликации), потому что данные берутся только те, которые запросил пользователь (т.е. проверяется - если их нет в локальном кэше, либо они "устарели", то запросить удаленную процедуру и сохранить в кэш). В общем - кэш в чистом виде, мне казалось, что это другая технология, чем репликация. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2005, 10:37 |
|
DB2: Коннект к удаленному серверу из хранимой процедуры на C (Си)
|
|||
---|---|---|---|
#18+
Victor Metelitsa И что? У DB2 SQL, что ли, слабый? sql как sql. Да только к чему логику дублировать? В данном случае она еще и скрыта... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2005, 22:09 |
|
DB2: Коннект к удаленному серверу из хранимой процедуры на C (Си)
|
|||
---|---|---|---|
#18+
Логику и в табличную функцию можно спрятать. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2005, 15:26 |
|
DB2: Коннект к удаленному серверу из хранимой процедуры на C (Си)
|
|||
---|---|---|---|
#18+
Можно или нет, но разработкчики сервера, с которого нужна информация, приянли и реализовали решение при котором логика прячется не в функцию, а в процедуру. Поэтому пришлось идти путем, подсказанным gardenman. На данный момент все так и работает. После написания непосредственно процедур меня попросили описать в word суть технологии и наиболее важные моменты. Поскольку мне лень переформатировать все в просто текст для вставки в сообщение (да и длинно) - для желающих прикладываю файлик. С файликом можно делать все что угодно, кроме: 1. Стирания из него имени автора. 2. Публикации в коммерческих изданиях. 3. Использование кусочков из него без указания источника. Хотя вышенаписанное вряд ли актуально !:) Поправки, уточнения, исправления и вопросы - приветствуются! :) Большое спасибо всем, кто помогал и особенно gardenman! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2005, 13:24 |
|
DB2: Коннект к удаленному серверу из хранимой процедуры на C (Си)
|
|||
---|---|---|---|
#18+
ХЫ... а файлик прикрепить забыл! :) В этом сообщении файлик, про который говорилось в предыдущем. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2005, 13:45 |
|
DB2: Коннект к удаленному серверу из хранимой процедуры на C (Си)
|
|||
---|---|---|---|
#18+
Что же он не шлется? :( ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2005, 13:56 |
|
DB2: Коннект к удаленному серверу из хранимой процедуры на C (Си)
|
|||
---|---|---|---|
#18+
В общем попытки закинуть файл любым из браузеров успехом не увенчались. Очевидно - либо так криво работает форум, либо дело в настройках корпоративного брэндмауэра. Почему - предприму еще одну попытку вечером из дома, а пока, если этот файл вообще нужен кому-нибудь вы можете написать мне на r_runner[собака]mail.ru с просьбой выслать его на почту. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2005, 14:08 |
|
|
start [/forum/topic.php?fid=43&msg=32862162&tid=1606011]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
76ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 293ms |
total: | 461ms |
0 / 0 |