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

Откуда:
Сообщений: 3
Суть проблемы с работой функций MSSQL2000:
Через небольшое время после накатывания кода хранимой функции (1 - 2 суток) она начинает выполняться в 100 - 500 раз медленнее либо выполнение вообще не завершается. Сам код, содержащийся в функции, непосредственно выполняется быстро. После повторного накатывания кода (иногда требуется повторить несколько раз) функция снова начинает работать нормально. Частота возникновения: 1 - 2 раза в сутки. Причем такая проблема наблюдается именно в рабочей БД, которая имеет размер порядка 20 Гб и общее число одновременно работающих пользователей достигает 80. Число активно работающих пользователей - до 50 - 60.

Что пробовали сделать:
1. Проверяли БД командой DBCC CHECKDB. Сообщений об ошибках не было
2. Сделали бэкап БД и восстановили из него БД. Результат - 2 суток замечаний не было, потом снова появилась та же проблема
3. Планируем переустановить MSSQL.

Что хотелось бы узнать:
1. Сталкивался ли кто-то с подобной проблемой и получалось ли ее решить?
2. Имеется ли литература по вопросам снижения производительности MSSQL в случаях, подобных данному?
3. Где хранится компилированный код объекта MSSQL (функции, процедуры и т.д.). Делаются ли какие-то отметки об изменении этого кода? (есть предположение, что какими-то процессами незначительно меняется компилированный код в хранилище, что и приводит к неработоспособности функции)
24 окт 03, 10:31    [391270]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с хранимой функцией в MSSQL2000  [new]
Berg
Member

Откуда: Кр-ск
Сообщений: 3480
SP3a?
24 окт 03, 10:40    [391279]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с хранимой функцией в MSSQL2000  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
sp_lock & sp_who ?
24 окт 03, 10:41    [391289]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с хранимой функцией в MSSQL2000  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Сталкиваемся постоянно. Есть несколько функций, да и процедур, которые периодически умирают. Приходится рекомпилять. Даже робот стоит для этого. Почему так - хрен его знает.

Так что не утруждай переустановкой сервера, не поможет

-- Tygra's --
24 окт 03, 11:14    [391328]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с хранимой функцией в MSSQL2000  [new]
Приходько Алексей
Member

Откуда:
Сообщений: 3
2(Berg) Стоит SP3. Версия MSSQL 8.00.760
2(BUser) sp_lock & sp_who. Чем они могут помочь?
2(All) Всем другим серверам в копии этой же БД функции "нравятся". Разница только в том, что нагрузка на них намного меньше и в основном чтение.
Есть еще одна особенность. Все функции, с которыми проблемы:
1. Выдают скалярное значение, а не таблицу, например
2. Используются в коде только как вложенные в другие ХП, ХФ.
24 окт 03, 11:30    [391366]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с хранимой функцией в MSSQL2000  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Явно почему-то слетает план выполнения у функций и процедур при больших нагрузках

-- Tygra's --
24 окт 03, 11:35    [391380]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с хранимой функцией в MSSQL2000  [new]
Приходько Алексей
Member

Откуда:
Сообщений: 3
Есть ли способы:
- идентификации изменения плана выполнения кода в БД;
- идентификации процессов, которые меняют план выполнения;
- источник информации, где есть сведения по этим тонким вопросам.
24 окт 03, 11:46    [391415]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с хранимой функцией в MSSQL2000  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
Тигре (:)) виднее... я просто "и общее число одновременно работающих пользователей достигает 80" может блокировочки... решил я по незнанию...
24 окт 03, 11:59    [391449]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с хранимой функцией в MSSQL2000  [new]
HEMO
Member

Откуда: Санкт-Петербург
Сообщений: 5
Повторюсь:
SQL Server 2000 and SQL Server 7.0 retain execution plans for all SQL statements in the procedure cache, not just stored procedure execution plans. The database engine uses an efficient algorithm for comparing new Transact-SQL statements with the Transact-SQL statements of existing execution plans. If the database engine determines that a new Transact-SQL statement matches the Transact-SQL statement of an existing execution plan, it reuses the plan. This reduces the relative performance benefit of precompiling stored procedures by extending execution plan reuse to all SQL statements.
24 окт 03, 12:13    [391487]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить