XMEH
Дата: 24.01.2009 10:43:55
Здраствуйте! Имеется Microsoft SQL Server 2000 - 8.00.760 (Build 3790: Service Pack 1)
Два дня назад после бэкапа а может действий программы в одном из модулей программы появились жуткие тормоза. На рисунке их видно - это 3 логаута, и время начала их очень странное. Причем в базе 3-дневной давности этого нет там все быстро. Или дело в запросе, который идет сразу после - создал просмотр из него, в на старой базе идет в QA 5 сек, на новой 4 мин. В design view в новой базе выдает таймаут. Ктонибудь сталкивался или может есть соображения?
Ken@t
Дата: 24.01.2009 11:07:12
Жуткие тормоза на картине Пикасо не видны , однако долго выполняющиеся запросы можно увидеть в профайлере, посмотреть какие болкировки в системе план выполнения запрса, перфоманс монитор натравить и так далее. Стартовой точкой может служить поиск по форуму словосочетания "жуткие тормоза" .
Ну и обновили бы вы скуль - после вашего билда ещё 4 сервис пака и хотфиксов не меряно вышло.
DeColo®es
Дата: 24.01.2009 11:39:27
2 ХМЕН если честно, ничего не понятно.
Для начала попробуйте объяснить, что такое "жуткие тормоза". Глядишь самому понятней станет, в чем именно проблема.
А то, что логаут идет минуту... Может, приложение транзакцию не закрывает корректно?
Ken@t |
Ну и обновили бы вы скуль - после вашего билда ещё 4 сервис пака и хотфиксов не меряно вышло. |
760 билд - это 3-ий сервис-пак. Не идеально конечно, но вполне приемлимая вещь. Но обновить стоит по-любому.
XMEH
Дата: 24.01.2009 12:07:22
да в том то и дело что я абсолютно пока не вижу где рыть (я не очень спец когда касается косяков, все что на ум пришло сверил) ведь базы то в принципе идентичны. может поменялся какой то параметр базы...
XMEH
Дата: 24.01.2009 12:20:43
DeColo®es, есть некая выборка - отображает в отдельном модуле проведенную работу.
раньше при таком запросе сервер загружался на 100% на секунду-две, теперь на 5 минут.
вот собственно проблемный кусок
SELECT DISTINCT
TOP 100 PERCENT ISNULL(ISNULL(ISNULL(t1.number, at1.number), t5.num), 'Не найдено')
FROM dbo.error_tbl tt LEFT OUTER JOIN
dbo.error_work erw ON tt.PrWork = erw.PrWork LEFT OUTER JOIN
(SELECT t3.idf, t4.number num, IsNull(t4.NameP, IsNull(t4.NameF, IsNull(t4.NameC, ' '))) np, t4.DtReg dtr
FROM ul t3 INNER JOIN
freg t4 ON t3.number = t4.number) t5 ON tt.id_ = t5.idf LEFT OUTER JOIN
dbo.freg t1 ON tt.id_ = t1.idf LEFT OUTER JOIN
dbo.arx_freg at1 ON tt.id_ = at1.idf
XMEH
Дата: 24.01.2009 13:12:13
Натравил SP4 все пришло в норму. Вопрос конечно остался но видимо тут пришли в действие какие то механизмы предусмотренные разработчиками.
Всем спасибо за советы!
DeColo®es
Дата: 24.01.2009 22:28:29
Время выполнения запроса может сильно меняться, если резко изменились данные, входные параметры или план выполнения.
План выполнения меняется если изменилась статистика (или наоборот - давно не менялась).
Почти каждый билд сервера немного меняется оптимизатор, строящий планы выполнения, особенно заметны изменения как раз при переходе на SP4. Соответственно часть запросов начинает выполняться "по-другому", что выражается в ускорении или замедлении.
В любом случае, нужно понимать, что такое оптимизатор, план выполнения индексы статистика, типы соединений... Информацию легко найти на этом сайте в форуме и статьях. Ну и естественно, в документации. ;)
Удачи.