Имя: Пароль:
1C
 
слишком большой справочник
0 anatoly
 
20.04.15
16:45
ситуация:
есть справочник с более 11 млн. элементов.
(это история транзакций ВМС)
решили что его все таки надо резать, оставлять только за последний год (или меньше)
проблема:
уже при попытке запроса по каким то условиям и группировкам - 1С виснет на 10-15 минут, потом выдает ошибку "недостаточно памяти" и падает.
размер таблицы этого справочника в базе SQL более 5 гб.

в чем может быть причина такой ошибки, как починить?
варианты "добавить памяти серверу" и т.д. приемлемы, но надо знать точно.
1 piter3
 
20.04.15
16:48
32 сервер 1с?
2 Fragster
 
гуру
20.04.15
16:48
проблема в том, что вы пытаетесь выгрузить это всё на клиента, и уже потом с этим работать. попробуйте через выполнить().выбрать() работать
3 H A D G E H O G s
 
20.04.15
16:52
(0) "в чем может быть причина такой ошибки, как починить?"

1) Выводите дозвизды элементов в табдок (на экран, принтер)
2) В результирующей выборке есть элементы составного типа.
4 Волшебник
 
модератор
20.04.15
16:54
Удалить справочник. (DROP TABLE на SQL)
Вместо справочника сделать регистр сведений.
5 Fragster
 
гуру
20.04.15
16:54
(4) а если нужны ссылки на конкретную транзакцию?
6 asady
 
20.04.15
16:54
(0) и эти люди потом не разрешают нам работать в 1С
7 Господин ПЖ
 
20.04.15
16:55
через выборку

клиент захлебывается
8 Волшебник
 
модератор
20.04.15
16:55
(5) завеcти измерение ID
9 anatoly
 
20.04.15
16:56
(1) нет, win server 2003 x64 оба, sql-сервера отдельно, на рабочем сервере 1С - 12 гб, на тестовом 8 гб памяти.
(2) т.е. это консоль запросов тупит?
10 Зеленый пень
 
20.04.15
16:56
(0)
"в чем может быть причина такой ошибки" - получаете слишком много данных, а то и вообще запрос кривой
"как починить?" - исправить код обработки
11 Господин ПЖ
 
20.04.15
16:58
>т.е. это консоль запросов тупит?

клиент 32 бита. получает выборку больше чем может проглатить и падает
12 D_E_S_131
 
20.04.15
17:01
(9) Если запрос выполняется на клиенте, то пользы от х64 не будет. А консоль запросов скорее всего так и выполняет запрос.
13 anatoly
 
20.04.15
17:02
(3) по 2 - есть такие поля... и что?
(4) не вариант - слишком много где менять придется.
(5) не нужны.
(11) да, клиент (мой комп) 32 бита.

990 770 элементов (с начала 2015 года) нормально вывелось.
14 Господин ПЖ
 
20.04.15
17:02
>то пользы от х64 не будет

это даст клиенту еще 1,5 Гб примерно... иногда этого хватает
15 Господин ПЖ
 
20.04.15
17:02
>да, клиент (мой комп) 32 бита

попробуй запустить на компе с 64-бит системой
16 anatoly
 
20.04.15
17:03
(15) прикол в том что даже на сервере по РДП консоль тоже не смогла вывести весь список...
17 Господин ПЖ
 
20.04.15
17:04
ну значит не хватает...

не выводи никуда. табличный документ жрет память ведрами
18 H A D G E H O G s
 
20.04.15
17:04
(13) "по 2 - есть такие поля... и что? "

Да ничего. Я думал, что проблема то не детская и причина непонятна.

А счаст вижу, что задачка детского сада.
19 Ymryn
 
20.04.15
17:04
попробуй выбирать первые 10000 (И так в несколько заходов), честно скажу не хватает знаний сказать, поможет или нет (есть подозрение, что все равно изначально будет обрабатываться весь объем). Но попробовать можно.
20 H A D G E H O G s
 
20.04.15
17:05
(19) Он выводит на экран, а не обрабатывает.
21 H A D G E H O G s
 
20.04.15
17:05
(6) А что утверждал автор?
22 Ymryn
 
20.04.15
17:07
(20) а зачем смотреть на 11 млн. элементов? Цель же удалить, а не посмотреть.
23 anatoly
 
20.04.15
17:08
(20) без вывода в табДок все 11 лямов элементов хаваются.
откуда я знал бы их количество тогда?
причем в табДок вывожу всего 5 полей из 35 всего.

(19) ну вот до ляма вывелось.

(22) сгруппировать по дням, посмотреть кол-во по периодам.
24 Fragster
 
гуру
20.04.15
17:10
кстати, консоль запросов из http://devtool1c.ucoz.ru/ лишена недостатка из (0)
25 H A D G E H O G s
 
20.04.15
17:13
(23) откуда я знал бы их количество тогда?

Выбрать Сумма(1) Из Справочник.Транзакции

Например так.
26 H A D G E H O G s
 
20.04.15
17:13
(23) Ты какие-то глупости пишешь.
27 Мебиус
 
20.04.15
17:14
(23)
"причем в табДок вывожу всего 5 полей из 35 всего."

ОМГ

Зачем?

Мрак
28 Мебиус
 
20.04.15
17:14
(0)
"в чем может быть причина такой ошибки, как починить? "

Голову не починишь
29 Fragster
 
гуру
20.04.15
17:14
(25) правильно количество(*)
30 H A D G E H O G s
 
20.04.15
17:16
(29) Какая разница?
31 anatoly
 
20.04.15
17:18
(26) а не наоборот?
(28) молодец. возьми пирожок.
32 Fragster
 
гуру
20.04.15
17:20
(30) преобразование к Число(6,0) по умолчанию
33 Мебиус
 
20.04.15
17:22
(31)
anatoly  

Вы очень недалекий и неумный человек
без всякого понимания предметной части

Это цензурно
нецензурно можно выразиться гораздо короче
34 EugeniaK
 
20.04.15
17:34
(23) Нафига смотреть глазами 10мнн записей?
35 Drac0
 
20.04.15
17:35
(34) Наде же все перепроверить и прокрыжить. Фиг знает ,что насчитала там эта ваша адинэска.
36 D_E_S_131
 
20.04.15
17:38
(34) "Семь раз отмерь, один раз отрежь!" © :)
37 anatoly
 
20.04.15
18:09
(34) а кто сказал "смотреть глазами"?
я писал что надо сгруппировать по дням.
(15) вобщем даже на х64 максимум 3+ ляма элементов обрабатывается...
38 H A D G E H O G s
 
20.04.15
18:10
(37) Ты группируешь от слова "неоправильно"
39 H A D G E H O G s
 
20.04.15
18:10
(38) Я бы даже сказал, хреново.
40 Drac0
 
20.04.15
18:46
(37) 3+ ляма? Хм, а 1с молодец. Думаю, ексель сдох бы на полуляме.
41 Drac0
 
20.04.15
18:47
(37) группировать это хорошо, правильно. Дык зачем выгружать-то 11 лямов строк?
42 ILM
 
гуру
20.04.15
18:49
Про коленку разработчика уже говорили?