Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Создать ХП с обращением к Linked Server.  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
Есть неск. долгих запросов по переливке данных из линкер-сервера MySQL 5.1
а-ля:
insert into MyTable select * from openquery(MyDBconnect,'select .....')

Решил обернуть их в ХП.
Непонятно почему, но создание ХП затянулось на неопр. время. Сбросил.
Блокировок нет. Юзер я один.
Неужели оно при создании этой ХП, производит попытку выполнить код в кавычках (в реале такой код будет выполняться 15...20мин) ???
Без этих строк ХП создается мгновенно.

зы: скл2008r2
24 фев 17, 17:37    [20241922]     Ответить | Цитировать Сообщить модератору
 Re: Создать ХП с обращением к Linked Server.  [new]
juwdoks
Member

Откуда:
Сообщений: 144
а если попроще запрос прописать, на одну строку результата?
24 фев 17, 17:42    [20241929]     Ответить | Цитировать Сообщить модератору
 Re: Создать ХП с обращением к Linked Server.  [new]
o-o
Guest
juwdoks
а если попроще запрос прописать, на одну строку результата?

и при чем тут результат, будь там 1 строка или 1000?
он же не лезет за результатом, ему нужны метаданные резалтсета.
если линкед недоступен, тоже повиснет.
ровно на время таймаута.
и это видно в ожиданиях, чего он ждет.
например, у менй линк на SQL Server, ожидание при парсинге процедуры с линкедом такое:
wait_type=OLEDB,
resource_description=External ExternalResource=MSQL_DQ
24 фев 17, 18:07    [20241956]     Ответить | Цитировать Сообщить модератору
 Re: Создать ХП с обращением к Linked Server.  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
ему нужны метаданные резалтсета.
Похоже на то.
Можно ли это обойти ?
24 фев 17, 18:11    [20241963]     Ответить | Цитировать Сообщить модератору
 Re: Создать ХП с обращением к Linked Server.  [new]
o-o
Guest
не, никак.
проверяет все: сперва наличие объекта,
потом права доступа, потом состав полей.
чтобы, например, выдать типа такого:
Msg 9514, Level 16, State 1, Procedure sp_from_linked, Line 3
Xml data type is not supported in distributed queries. Remote object 'OPENQUERY' has xml column(s).


прикольно, что сперва проверяет существование объекта, и лишь потом права.
т.е. если пишу openquery с участием логина, не отмапленного в нужную базу,
и пишу несуществующую таблицу, сперва валится на отсутствии объекта.
так можно методом тыка определить, есть ли нужная таблица в нужной базе.
только при правильном имени объекта выдает
Msg 916, Level 14, State 1, Line 1
The server principal "..." is not able to access the database "..." under the current security context.
24 фев 17, 18:23    [20241977]     Ответить | Цитировать Сообщить модератору
 Re: Создать ХП с обращением к Linked Server.  [new]
juwdoks
Member

Откуда:
Сообщений: 144
я же написал - запрос попроще
обернуть в хранимку с дефолтом top 0, чтобы выдача была мгновенной
24 фев 17, 18:24    [20241979]     Ответить | Цитировать Сообщить модератору
 Re: Создать ХП с обращением к Linked Server.  [new]
o-o
Guest
хотя можно и обойти, завернув все в динамику.
тогда не полезет проверять до выполнения
24 фев 17, 18:29    [20241987]     Ответить | Цитировать Сообщить модератору
 Re: Создать ХП с обращением к Linked Server.  [new]
o-o
Guest
juwdoks
я же написал - запрос попроще
обернуть в хранимку с дефолтом top 0, чтобы выдача была мгновенной

чукча не читатель?
не выполняется запрос,
сервер лезет за МЕТАДАННЫМИ
(надеюсь, так виднее)
24 фев 17, 18:31    [20241988]     Ответить | Цитировать Сообщить модератору
 Re: Создать ХП с обращением к Linked Server.  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
За метаданными врем. таблицы (которой в этот момент нет) чота ХП не лезет. И нормально создается.
А вот поля с линкерсервера ей ну ппц как нужны.... :(
24 фев 17, 18:38    [20241996]     Ответить | Цитировать Сообщить модератору
 Re: Создать ХП с обращением к Linked Server.  [new]
o-o
Guest
хоть временной, хоть нет, если нет таблицы, не надо и столбцы проверять.
с линкедом такое не катит.
процедура не сохранится, даже если просто нет такого линкеда
24 фев 17, 18:45    [20242006]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить