| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Улучшение производительности
			 
			
			Подскажите как вы оптимизируете запросы к базе данных. 
		
		
		
		
		
		
			Есть несколько форм которые используют как источник данных View в которой объединены несколько таблиц, каждая по несколько миллинов записей в каждой. Открываются вплоть до минуты. Делаю трейс, нахожу самый тяжелый запрос, загружаю его в SQL, анализирую план выполнения, создаю индексы которые SQL рекомендует. Никаких изменений, иногда даже становится дольше , что еще можно проверить ? По самим индексам которые рекомендует SQL вопросы: 1. Часто предлагает создать индекс по нескольким полям, но DataAreaId и Partition среди них нет. 2. Предлагает создать некластерный индекс по AccountNum на VendTable, хотя там уже такой кластерный есть. Что в таких случаях делать ? Почему точно такой же запрос с параметрами который в Аксапте выполняется за 1 минуту в SQL иногда зависает на почаса+ ? Как надежней тестрировать новые индексы, создавая их в SQL и запуская запросы там же, или через АХ? Спасибо. 
				__________________ 
		
		
		
		
	_databaseTransDelete ... bl@$ !  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			не смотря на план который предлагает SQL на бумажке делаете делаете собственный план запроса(т.е. как бы вы выбирали данные, если бы вам пришел такой запрос). потом сравниваете с тем что предлагает SQL. по идее вы должны зная свое решение генерить более оптимальные планы, так как обладаете информацией о логической структуре данных - понимаете для чего это вообще нужно(чего нет у SQL)
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: mazzy (2). | |
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			думать. 
		
		
		
		
		
		
		
	далеко не всегда предложения по одному запросу соответствуют типовой нагрузке. Цитата: 
	
бывает и наоборот, запрос, который выполняется в Аксапте полчаса в SQL выполняется за минуту если одним словом - статистикой.  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
прошу сюда: А при чем тут курсоры, не курсоры? кардинальное отличие во времени могут дать только разные планы  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Не создавайте индексы которые SQL рекомендует - он не всегде прав! 
		
		
		
		
		
		
			Цитата: 
	
		
			Почему точно такой же запрос с параметрами который в Аксапте выполняется за 1 минуту в SQL иногда зависает на почаса+ ?
		
	 
Для мониторинга производительности, установите DynamicsPerf. 
				__________________ 
		
		
		
		
	AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0  | 
| 
	
 |