powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Получение данных с удаленного сервера
10 сообщений из 10, страница 1 из 1
Получение данных с удаленного сервера
    #34316230
Sybase ASE 12.5
Необходимо из ХП выполнять вставку в таблицу данными для которой служит результат выполнения ХП-р типа селект расположенные на удаленных серверах БД.
Т.е. необходимо подконекчиваться к другим физически удаленным серверам Сайбасе, выполнять там селект и результат селекта заливать в таблицу

Как это выполнять?
...
Рейтинг: 0 / 0
Получение данных с удаленного сервера
    #34316250
Peter Kirillow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Получение данных с удаленного сервера
    #34318976
Про прокси таблицы мне не совсе понятно, как всеже происходит удаленное соединение, точнее где прописываются реквизиты /хост, порт, логин, пароль/ для удаленного сервера БД. Вроде как есть таблица master.sysservers, в которой описываются всего лишь


Таблица sysservers содержит по одной строке для каждого удаленного сервера Adaptive Server, Backup Server™ или Open
Server™, с которых данный Adaptive Server может вызывать удаленные процедуры.

Столбцы таблицы sysservers:
Имя Тип данных Описание
srvid smallint Идентификационный номер удаленного сервера (только для локального использования).
srvstatus smallint Битовая карта режимов.
srvname varchar(30) Имя сервера.
srvnetname varchar(32) Имя файла интерфейсов для сервера.
srvclass smallint Категория сервера, определяемая параметром “класс” процедуры sp_addserver
srvsecmech varchar(30) Механизм обеспечения безопасности.
srvcost smallint Содержит стоимость доступа к серверу по сети в
миллисекундах. Используется только оптимизатором
запросов сервера Adaptive Server для оценки стоимости запроса
при обращении к прокси-таблице. Значение
по умолчанию равно1000 мс.
...
Рейтинг: 0 / 0
Получение данных с удаленного сервера
    #34319377
Peter Kirillow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Получение данных с удаленного сервера
    #34331064
Благодарю, почитали, начали писать

Суть задачи - необходимо с нескольких удаленных серверов БД залилить перекопировать таблицы в одну локальную таблицу

При практическом написании ХП я столкнулся с несколькими проблемами, к примеру как создавать таблицу в цикле, точнее, у меня проблемы возникают далее к примеру в строке с
UPDATE STATISTICS mod_PROXY т.к. таблицы еще нет то Сайбейс Централ ругается

CREATE PROCEDURE dbo.XP
AS
BEGIN
while (select servername from dzk_dev_local..mod_remote_SDB)!=NULL
begin
CREATE EXISTING TABLE mod_PROXY (
IdDatabase T_ID null,
IdForeignPerformance T_ID not null,
IdShow T_ID null,
ShowName nvarchar(255) null,
IdHall T_Id_Fix not null,
PerformanceTime T_DATE_ONLY null
)
EXTERNAL TABLE AT "serverbase.dzk..P1"
UPDATE STATISTICS mod_PROXY
-- и т.д.
end
END
...
Рейтинг: 0 / 0
Получение данных с удаленного сервера
    #34331508
Peter Kirillow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
update statistics для proxy таблиц ?
данные то на другом сервере. да и таблицами они называются весьма условно...
...
Рейтинг: 0 / 0
Получение данных с удаленного сервера
    #34331883
sn1251
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Peter Kirillowupdate statistics для proxy таблиц ?
данные то на другом сервере. да и таблицами они называются весьма условно...
Именно что. ASE может использовать эту локально хранимую статистику для оптимизации гетерогенного запроса. Правда не всегда получается хорошо...
...
Рейтинг: 0 / 0
Получение данных с удаленного сервера
    #34332051
Да вот и мануала

После успешного определения существующей таблицы вызовите для
нее команду update statistics. Это позволит оптимизатору запросов
делать разумный выбор индексов и порядка соединения.


а что по алгоритмической то части задачи?
...
Рейтинг: 0 / 0
Получение данных с удаленного сервера
    #34332451
Peter Kirillow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сначала надо объявить объект
sp_addobjectdef mod_PROXY, 'serverbase.dzk..P1', 'table'

про "update statistics" был не прав. сорри
...
Рейтинг: 0 / 0
Получение данных с удаленного сервера
    #34336983
Да, получилось, по крайней мере работает, может и какнибудь по другому можно было но у меня пока так, причем выполнять никих декларирований не нужно

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
CREATE PROCEDURE dbo.mod_bill_update_performance 
AS 
    BEGIN 
    declare  @remote_path varchar( 150 ), @IdDatabase T_ID, @IdDatabaseChar varchar( 10 )
    declare remote_path_crs cursor for select IdDatabase, remotepath from mod_bill_remote_SDB for read only 
    open remote_path_crs    

    WHILE ( 1 = 1 )
    BEGIN
    fetch remote_path_crs into @IdDatabase, @remote_path 
    if (@@sqlstatus= 0 )
    begin
        select @IdDatabaseChar=convert(varchar, @IdDatabase)
        --exec sp_addobjectdef "dzk_dev_local..mod_bill_Performance_PROXY", "spionersybase2.dzk_dev..mod_bill_Performance1", "table"
             EXECUTE ('CREATE EXISTING TABLE mod_bill_Performance_PROXY ('+
            'IdDatabase  T_ID    null, ' +
            'IdForeignPerformance    T_ID    not null, ' +
            'IdShow  T_ID    null, ' +
            'ShowName    nvarchar(255)   null, ' +
            'IdHall  T_Id_Fix    not null, ' +
            'PerformanceTime T_DATE_ONLY null) ' + 
        'EXTERNAL TABLE AT ' + "'" + @remote_path + "'")
        EXECUTE ('UPDATE STATISTICS mod_bill_Performance_PROXY')
        EXECUTE ('SELECT * from mod_bill_Performance_PROXY')
        EXECUTE ('INSERT INTO mod_bill_Performance2 SELECT ' + @IdDatabaseChar + ', IdForeignPerformance, IdShow, ShowName, IdHall, PerformanceTime FROM mod_bill_Performance_PROXY') 
        EXECUTE ('DROP TABLE mod_bill_Performance_PROXY')
    end
    else break
    END
    close remote_path_crs      
    deallocate cursor remote_path_crs      
    END

в таблице mod_bill_remote_SDB список удаленных баз данных, т.е. путей по сути вида serverbase.dzk..P1
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Получение данных с удаленного сервера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]