karu
Дата: 14.02.2013 11:36:38
Здравствуйте, помогите, пожалуйста кто может.
Есть процедура, которая временами начинает выполняться очень долго и под свое выполнение резервирует больше гигабайта оперативной памяти,, памяти перестает хватать, остальные запросы ждут в состоянии RESOURCE_SEMAPHORE, не могу понять в чем дело.
Может посмотрит кто.
karu
Дата: 14.02.2013 11:37:03
и план запроса
Glory
Дата: 14.02.2013 11:46:58
Для каких значений параметров ваш принудительный план просто становится неоптимальным.
karu
Дата: 14.02.2013 11:55:30
Glory |
---|
Для каких значений параметров ваш принудительный план просто становится неоптимальным. |
Не совсем понял, это вопрос?
Glory
Дата: 14.02.2013 11:57:58
karu |
---|
Не совсем понял, это вопрос? |
Предложенный вами план отличается от того, что вы захинтовали в тексте своего запроса ? - вот это вопрос
Если нет, то значит, ваш принудительный план не является оптимальным для какиих значений параметров. - а это предположение.
karu
Дата: 14.02.2013 12:00:06
Это полный текст процедуры, параметры выставляются в программе, начитываются подзапросами.
Glory
Дата: 14.02.2013 12:02:17
karu |
---|
Это полный текст процедуры, параметры выставляются в программе, начитываются подзапросами. |
Вы понимаете о чем речь ?
В вашем запросе уже четко определен план выполнения.
Вы из каких соображений давали все эти хинты в тексте запроса ?
Вы тестировали этот план для всех возможных "параметров выставляемых в программе" ?
karu
Дата: 14.02.2013 12:06:15
Glory, слабо разбираюсь в планах выполнения, хинты писали разработчики ПО, plan.txt- это актуальный план из профайлера.
Может немного понятнее объяснил.
Glory
Дата: 14.02.2013 12:07:53
karu |
---|
хинты писали разработчики ПО, plan.txt- это актуальный план из профайлера. |
И что, этот план НЕ совпадает с тем, который задают хинты ?
Гость333
Дата: 14.02.2013 12:15:45
karu,
Можете приложить план запроса в xml (файл .sqlplan)? В текстовом плане вижу несколько Index Scan + Table Spool. Скорее всего, печальная печаль происходит именно из-за этого.
И какая у вас "select @@version"? Если 2008 и выше, то там есть хинт FORCESEEK. Если 2005, то может помочь пересбор нужных статистик с опцией FULLSCAN. В запущенных случаях может понадобиться разбить большой запрос на более мелкие.