| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			SSRS резкая деградация производительности.
			 
			
			Отчет SSRS использует хранимую процедуру MS SQL. Пока отчет вызываю даже не из Аксыи не из IE, а с помощью MS Visual Studio. 
		
		
		
		
		
		
		
	Хранимая процедура создает временную таблицу, заполняет её несколькими запросами из InventTrans. В конце процедуры производится выборка из этой временной таблицы и таблица удаляется. Первые 2-3 запуска отчета работают в соответствии с теорией (при первом запуске производится построение планов запроса, кэшируется запрос ит.п.), в итоге, первый запуск отрабатывает за 3,5 минуты, второй и третий за две - две с небольшим минуты. А вот последующие запуски выполняются все медленнее и медленнее. Так 5-6 запуск отрабатывает за 6-8 минут, а десятый вообще вылетает по таймауту. (с одними и теми же параметрами). Сначала я грешил на сам SSRS и Visual Studio. Но, переписал хранимую процедуру на простой скрипт и получил ту же самую ситуацию: второй-третий запуск работают быстрее, чем первый, а далее резко падает производительность. После перезапуска сервера MS SQL опять первые запуски работают как положено, а последующие тормозят. Может быть кто-то сталкивался с таким поведением и знает рецепты?  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 ---------------- 
		
			
	 | 
	
	
	
		
		
		
		 
			
			я бы посмотрел, что творится с tempdb и диском, где она лежит.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Raven Melancholic (2). | |
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Может попробовать использовать  
		
		
		
		
		
		
			- не процедуру, а функцию и - не временную таблицу, а табличную переменную? Где-то читал, что МС рекомендует пользовать именно табл. переменные. 
				__________________ 
		
		
		
		
	Axapta 3.0 sp - хз какой, kr2  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Raven Melancholic (5). | |
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А если в определение процедуры добавать опцию WITH RECOMPILE чтобы исключить влияние ранее рассчитанного плана?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Raven Melancholic (2). | |
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 ---------------- 
		
			
	 | 
	
	
	
		
		
		
		 
			
			вспомнил одну историю... 
		
		
		
		
		
		
		
	Давным давно, в Перекрестке на SQL 2000 была такая же проблема. Тогда причину найти не удалось и сделали затычку. При работе процедурка писала в специальную табличку длительность своей работы, и когда этот параметр вылезал за определенное значение автоматически запускался RECOMPILE процедуры.  | 
| 
	
 | 
| Теги | 
| reporting services, производительность | 
| 
	
	 | 
	
		
  |