Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: Долго загружает рекордсет
     
    
Добавлено: 21.07.11 11:31
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
    
 fifa36
      
       
  
Есть таблица в базе Access. В ней 62 тыс. записей. Три из 4 полей индексированы, индексирована также как уникальная комбинация этих полей.
 
    
Запрос выбирает около 400 записей из этой таблицы.
Операция
rstQuotes.MoveLast()
занимает 25 минут. Потом цикл быстро обрабатывает мгновенно.
Если не двигаться к последней записи, то цикл будет отрабатываться примерно те же 25 минут.
Вообщем если какой- то другой способ, более быстрый? а то это очень долго
rstQuotes.Open(sql, connObject, ADODB.CursorTypeEnum.adOpenDynamic) '= connRISKAPP.Execute(sql)
rstQuotes.MoveLast()
rstQuotes.MoveFirst()
Do Until rstQuotes.EOF
Console.WriteLine(rstQuotes.Fields("PROD").Value)
rstQuotes.MoveNext
Loop
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 3
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа:
 fifa36
![]()
Вопросов: 33
Ответов: 116
      
 Профиль |  | #1
       
Добавлено:  21.07.11 11:34
       
    
       
  
Дело еще в том что запрос написан не оптимально, но это предмет отдельной дискуссии, интересно можно ли кроме правки запроса что- то сделать!
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа:
 Ким Чен Ир
![]()
Вопросов: 0
Ответов: 140
      
 Профиль |  | #2
       
Добавлено:  22.07.11 02:13
       
    
       
  
Самый шустрый рекордсет ForwardOnly, но в твоем случае что-то все-таки с самим запросом. Выкладывай. 
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа:
 fifa36
![]()
Вопросов: 33
Ответов: 116
      
 Профиль |  | #3
       
Добавлено:  22.07.11 09:26
       
    
       
  
Запрос уже поправил!) Увеличился в 4 раза по объему но зато стал отрабатывать за секунды. На счет ForwardOnly понял спасибо!