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

Откуда:
Сообщений: 4
Здравствуйте, уважаемые коллеги.
Недавно столкнулся с проблемой, и надеюсь, что кто-нибудь знает причину. Суть:
Есть хранимая процедура, которая возвращает XML с некоторыми данными. С недавних пор начала странно себя вести - возвращать NULL. При этом, если зайти в SQL Management Studio, открыть эту процедуру, и ничего не меняя выполнить скрипт, то она начинает нормально отдавать XML.
Может быть кто-нибудь уже сталкивался с подобной проблемой. Буду признателен за любую информацию.

Thank you in advance.
17 авг 09, 16:49    [7547665]     Ответить | Цитировать Сообщить модератору
 Re: Процедура возвращает NULL вместо XML  [new]
Naroto
Member

Откуда: куда и зачем
Сообщений: 3604
Naroto хотело увидеть

SELECT @@VERSION

пжст.
17 авг 09, 17:01    [7547761]     Ответить | Цитировать Сообщить модератору
 Re: Процедура возвращает NULL вместо XML  [new]
FedorZ
Member

Откуда:
Сообщений: 4
Naroto,

Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86) Nov 24 2008 13:01:59 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
17 авг 09, 17:03    [7547772]     Ответить | Цитировать Сообщить модератору
 Re: Процедура возвращает NULL вместо XML  [new]
Naroto
Member

Откуда: куда и зачем
Сообщений: 3604
А перекомпилировать пробовали? Когда определили что есть дефект и что ему способствовало? Может OS патч какой ставили? Какое приложение запускает ваш СПРОК?
17 авг 09, 17:09    [7547832]     Ответить | Цитировать Сообщить модератору
 Re: Процедура возвращает NULL вместо XML  [new]
FedorZ
Member

Откуда:
Сообщений: 4
Naroto,

А перекомпилировать пробовали? Когда определили что есть дефект и что ему способствовало? Может OS патч какой ставили? Какое приложение запускает ваш СПРОК?

Дело в том, что я не совсем программист и не знаю, как перекомпилировать (могу предположить, что это что-то вроде DBCC FREEPROCCACHE, но не уверен. Да и это я сделать не могу, т.к. мой юзер не имеет на это прав). Что способствовало дефекту сложно сказать, т.к. на сервере за короткий срок было выполнено довольно много скриптов по переделыванию/добавлению процедур и вьюх. Вызывается она из веб-приложения ASP. Но это я думаю не при чем, т.к. NULL она возвращает даже при простой попытке ее выполнить.

Если про компиляцию я предположил верно, то подскажите, пожалуйста, что должна вернуть DBCC FREEPROCCACHE и я пойду к нашим IT-спецам.
17 авг 09, 17:18    [7547888]     Ответить | Цитировать Сообщить модератору
 Re: Процедура возвращает NULL вместо XML  [new]
Naroto
Member

Откуда: куда и зачем
Сообщений: 3604
FedorZ
Если про компиляцию я предположил верно, .


Думаю что если Вы выполните

DROP dbo.yourstoredprocedure
....
CREATE PROCEDURE dbo.yourstoredprocedure
.....
с правами требуемыми для запуска

GRANT EXECUTE .....

то всё у Вас восстановится. Сделайте скрипт вашей процедуры и запустите его.
17 авг 09, 17:25    [7547934]     Ответить | Цитировать Сообщить модератору
 Re: Процедура возвращает NULL вместо XML  [new]
Glory
Member

Откуда:
Сообщений: 104760
Naroto
FedorZ
Если про компиляцию я предположил верно, .


Думаю что если Вы выполните

DROP dbo.yourstoredprocedure
....
CREATE PROCEDURE dbo.yourstoredprocedure
.....
с правами требуемыми для запуска

GRANT EXECUTE .....

то всё у Вас восстановится. Сделайте скрипт вашей процедуры и запустите его.

Это вы так предлагаете перекомпиляцию производить ???
17 авг 09, 17:27    [7547944]     Ответить | Цитировать Сообщить модератору
 Re: Процедура возвращает NULL вместо XML  [new]
Naroto
Member

Откуда: куда и зачем
Сообщений: 3604
Glory
Это вы так предлагаете перекомпиляцию производить ???


Нет не я... Это Мелкомягкий.
17 авг 09, 17:28    [7547952]     Ответить | Цитировать Сообщить модератору
 Re: Процедура возвращает NULL вместо XML  [new]
Glory
Member

Откуда:
Сообщений: 104760
Naroto
Glory
Это вы так предлагаете перекомпиляцию производить ???


Нет не я... Это Мелкомягкий.

Не говорите ерунды.
17 авг 09, 17:29    [7547955]     Ответить | Цитировать Сообщить модератору
 Re: Процедура возвращает NULL вместо XML  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
Naroto
Glory
Это вы так предлагаете перекомпиляцию производить ???


Нет не я... Это Мелкомягкий.
Вообще-то есть системная ХП sp_recompile для этого.
17 авг 09, 17:31    [7547972]     Ответить | Цитировать Сообщить модератору
 Re: Процедура возвращает NULL вместо XML  [new]
Naroto
Member

Откуда: куда и зачем
Сообщений: 3604
Ну скажем так - предложенная Naroto процедура удаления объекта с последующим его восстановлением - не совсем перекомпиляция... Вернее совсем не перекомпиляция. А полное восстановление плана выполнения процедуры. Можно много спорить что и как лучше делать. Практически сама перекомпиляция нередко влияет на ухудшение производительности. Особенно если запускается без самоуспокоения. И в том и другом случае (с применением
 sp_recompile
) восстанавливается план выполнения.

Вот тут рассматриваются аспекты обеих подходов.

Спасибо
17 авг 09, 17:53    [7548105]     Ответить | Цитировать Сообщить модератору
 Re: Процедура возвращает NULL вместо XML  [new]
Glory
Member

Откуда:
Сообщений: 104760
Удаление процедуры вовсе не ведет к "полному восстановлению плана". Оно ведет всего лишь к удалению плана из кэша. Чего можно добиться и без удаления процедуры. На крайний случай простой перезагрузкой сервера
17 авг 09, 18:01    [7548154]     Ответить | Цитировать Сообщить модератору
 Re: Процедура возвращает NULL вместо XML  [new]
FedorZ
Member

Откуда:
Сообщений: 4
Вопрос все еще открыт. Не помог ни DROP с последующим CREATE, ни DBCC FREEPROCCACHE.
25 авг 09, 08:39    [7575495]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить