Переключение на Главную Страницу Страницы: [1] 2 3 ... 5 ОтправитьПечать
Очень популярная тема (более 25 ответов) Очень большая выборка (число прочтений - 18828 )
U_zer
Экс-Участник


Очень большая выборка
30. Ноября 2007 :: 06:18
Печать  
Всем привет!

Столкнулся с проблемой:

Есть отчет - АнализПродаж.

Начиная с определенного  периода при выполнении
Тзн = Запрос.ВыполнитьИнструкцию(ТЗ),

1С падает. Выяснил, что при попытке формирования Тзн, память сжирается 1, 083 Гб. И после этого 1С свертывается.

Стандартный запрос 1С при прочих равных условиях работает нормально, но долго.

Что делать?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Очень большая выборка
Ответ #1 - 30. Ноября 2007 :: 06:36
Печать  
получи текст sql запроса с помощью
Запрос.Отладка(1);
после этого выполни запрос в query analisator
  
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: Очень большая выборка
Ответ #2 - 30. Ноября 2007 :: 07:41
Печать  
А дальше что?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Очень большая выборка
Ответ #3 - 30. Ноября 2007 :: 07:43
Печать  
узнаешь проблема в sql или в 1с++
  
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: Очень большая выборка
Ответ #4 - 30. Ноября 2007 :: 08:06
Печать  
1) При попытке
Запрос.Отладка(1)
Запрос.ВыполнитьИнструкцию(ТЗ), 1С падает.
2) Пришлось использовать MetaDataWork.ОбрМетаСКЛ(ТЗ)
В SQL все выполняется нормально, как и ожидалось.
Так что ошибка в методе ВыполнитьИнструкцию (наверное).
  
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: Очень большая выборка
Ответ #5 - 30. Ноября 2007 :: 08:42
Печать  
Да .......
Group by рулит!

Но все равно, это не дело, если при большой выборке 1С просто падает.   Печаль
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Очень большая выборка
Ответ #6 - 30. Ноября 2007 :: 08:57
Печать  
Цитата:
Да .......
Group by рулит!

Но все равно, это не дело, если при большой выборке 1С просто падает.   Печаль

Тоже сталкивался с таким, когда из любопытства делал большую выборку.
  
Наверх
ICQ  
IP записан
 
U_zer
Экс-Участник


Re: Очень большая выборка
Ответ #7 - 30. Ноября 2007 :: 09:33
Печать  
А что по этому поводу скажут разаработчики?
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: Очень большая выборка
Ответ #8 - 30. Ноября 2007 :: 17:25
Печать  
Присоединяюсь, база DBF, OLEDB на больших выборках 1С падает!!!  Плачущий
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Очень большая выборка
Ответ #9 - 30. Ноября 2007 :: 19:12
Печать  
PVR писал(а) 30. Ноября 2007 :: 17:25:
Присоединяюсь, база DBF, OLEDB на больших выборках 1С падает!!!  Плачущий

попробуй sqlite http://www.1cpp.ru/forum/YaBB.pl?num=1192855975  .
60 000 строк у меня работало.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Очень большая выборка
Ответ #10 - 01. Декабря 2007 :: 07:43
Печать  
Как вариант привышен максимальнвй размер ТЗ
  
Наверх
ICQ  
IP записан
 
U_zer
Экс-Участник


Re: Очень большая выборка
Ответ #11 - 01. Декабря 2007 :: 07:50
Печать  
Но ведь если сделать аналогичный запрос на чистом 1С, а затем Запрос.Выгрузить(Тзн), то никто никуда не падает. Как это объяснить?
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: Очень большая выборка
Ответ #12 - 01. Декабря 2007 :: 14:47
Печать  
Z1 писал(а) 30. Ноября 2007 :: 19:12:
попробуй sqlite http://www.1cpp.ru/forum/YaBB.pl?num=1192855975  .
60 000 строк у меня работало.


Точно не помню, примерно 150000 - 200000 строк,
ты имеешь в виду, что это ошибка OLEDB?

  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Очень большая выборка
Ответ #13 - 02. Декабря 2007 :: 15:22
Печать  
я как-то случайно сделал
Код
Выбрать все
select * from 1sjourn 


+
Код
Выбрать все
ТЗ.ВыбратьСтроку(); 


и в ТЗ попала выборка из ~100МБ таблицы.
1с-ка не упала, только сильно лагала.

Могу поглядеть на каком месте падает:
1. нужна таблица(ы), по которой делается запрос;
2. текст запроса;
3. версия сборки 1с++;
  
Наверх
ICQ  
IP записан
 
U_zer
Экс-Участник


Re: Очень большая выборка
Ответ #14 - 03. Декабря 2007 :: 06:45
Печать  
Код
Выбрать все
select
$СпрТ.спрПроизводитель [Производитель $Справочник.Производитель],
РегОбор.ресСебестРубПриход [СуммаСебест $число],
РегОбор.ресСебестРубРасход [СуммаВозврСебест $число],
РегОбор.ресКоличествоПриход [СуммаКоличество $число],
РегОбор.ресКоличествоРасход [СуммаКоличествоР $число],
РегОбор.ресСуммаРубПриход [СуммаПродСт $число],
РегОбор.ресСуммаРубРасход [СуммаВозврСт $число]
from $РегистрОбороты.Реализация(:ДатаНач,:ДатаКон~, Документ,, , (измТовар),(ресКоличество, ресСебестРуб, ресСуммаРуб)) РегОбор

inner join $Справочник.Товары СпрТ (nolock) on СпрТ.id = РегОбор.измТовар
 



От сборки 1С++ это не зависит, проверялось на разных, включая v 2.0.3.8 Nb 29.11.2007.

Ps Данный запрос в SQL QA возвращает 214 тыс строк нормально.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 ... 5
ОтправитьПечать