|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.05.2013, 17:07 | #1 |
Форумчанин
Регистрация: 09.02.2011
Сообщений: 150
|
SQL Server: хранимая процедура затормозилась
У меня есть база на MS SQL Server 2008. В ней есть такая вот хранимая процедура:
Код:
Сейчас нас интересует применение процедуры в случае когда "IF @WorkContributorID IS NULL". Другими словами - когда в таблицу [WorkArchive.WorkContributorArc] вставляется сразу ПАЧКА строк, указанная через входной табличный параметр @ArchiveItems. Сразу скажу - возможный размер @ArchiveItems небольшой: несколько строк. Эта процедура [Proc1], в свою очередь, вызывается из некоего T-SQL кода, изнутри цикла WITH, ходящего по некоему курсору. Всё работало несколько месяцев прекрасно пока вдруг не начало (на тех же самых данных) тормозить - работать раз так в 100 медленнее. Судя по загрузке диска, происходил перебор таблиц [WorkArchive.WorkContributorArc] и [Work.WorkContributor] - а они большие, по 40 миллионов строк. План Выполнения посмотреть не успели, потому что вскорости произошло вот что: я взял эту процедуру [Proc1] и НЕсуществено изменил её. Просто вставил где-то в её теле ещё один пробел. То есть процедура перекомпилировалась, хотя по сути не изменилась. Тут же после этого проблема исчезла и [пока] больше не появлялась. Что это было? Очевидно, MS SQL начал почему-то строить очень нерациональный план запроса для этого кода. Почему он начала это делать; почему это исчезло после перекомпиляции; и какова вероятность, что эта проблема проявится вновь? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хранимая процедура | Jrcfyf | БД в Delphi | 1 | 14.02.2012 18:45 |
Хранимая процедура | Ellkat | SQL, базы данных | 0 | 22.05.2011 17:02 |
Хранимая процедура в Microsoft SQL Server | Ellkat | Помощь студентам | 0 | 22.05.2011 11:27 |
Хранимая процедура sql | Itachi | БД в Delphi | 0 | 04.04.2011 21:06 |
Хранимая процедура. | Cartman18 | БД в Delphi | 21 | 08.05.2010 18:56 |