|
Получение данных из большой таблицы ~6.2 млн. записей | ☑ | ||
---|---|---|---|---|
0
qwerty09
04.07.11
✎
18:55
|
8.2.13 + MSSQL2008
В конфигурации одна из таблиц имеет порядка 6 млн. записей, их необходимо выводить отчетом на СКД с отборами по нескольким полям, упорядочиванием и несколькими группировками только из этой таблицы, никаких соединений и объединений нет, НО данные не то что через отчет не выводятся, даже через консоль запросов не осилил...сначала вылетала ошибка что недостаточно памяти на сервере приложений, поднял лимит в настройках кластера, теперь - что то типа: "удаленный хост принудительно разорвал существующее соединение". Подскажите плиз что можно еще предпринять? Может в самой СУБД что то настроить надо? |
|||
1
Aswed
04.07.11
✎
18:55
|
(0) Перейти на Оракл не предлагать?
|
|||
2
Господин ПЖ
04.07.11
✎
18:56
|
отчет на 6 мулионов строк под собой не имеет смысла...
|
|||
3
Grusswelle
04.07.11
✎
18:57
|
(2) А это, может, ОАО "Газпром" какой? ;-)
|
|||
4
Господин ПЖ
04.07.11
✎
18:58
|
(3) а разница? чего с ним делать? садиться бухам с линейкой и крыжыть?
|
|||
5
qwerty09
04.07.11
✎
18:58
|
(1) боюсь что зажмут 6 килобаксов на субд
|
|||
6
МишельЛагранж
04.07.11
✎
18:59
|
Выборкой по 15 строк набирайте.
Это не та "СУБД", чтобы веньгаться "хочу 10 муллионов строк обработать!" И поменьше читайте рекламки 1С.... |
|||
7
Господин ПЖ
04.07.11
✎
18:59
|
(1) а чем оракле поможет? затыкается клиент... а он такой - 2 Гб выжрал и привет горячий...
|
|||
8
Господин ПЖ
04.07.11
✎
19:00
|
>И поменьше читайте рекламки 1С....
причем тут 1С... |
|||
9
qwerty09
04.07.11
✎
19:00
|
(2) Неее, все 6 миллионов нафик не нужны, нужно выбрать данные, отобранные по некоторым условиям...
|
|||
10
qwerty09
04.07.11
✎
19:01
|
(7) почему 2 ГБ?
|
|||
11
qwerty09
04.07.11
✎
19:02
|
мне бы хоть 500 строк отобрать и сгруппировать красиво...дык не хочет ругается
|
|||
12
Господин ПЖ
04.07.11
✎
19:03
|
(10) потому... что клиент 32-bit
|
|||
13
qwerty09
04.07.11
✎
19:05
|
(6) поподробнее плиз? речь о той выборке что СправочникМенеджер.Выбрать()? Если да, то такой отчет будет ~недельку формироваться...И Выбрать() вроде по 25 строк выбирает, но могу и ошибаться.
|
|||
14
МишельЛагранж
04.07.11
✎
19:06
|
(10) можно больше дать памяти - PAE и /3G
|
|||
15
qwerty09
04.07.11
✎
19:06
|
(12) 2^32=4294967296 вроде всегда было
|
|||
16
МишельЛагранж
04.07.11
✎
19:07
|
(15) приложению доступно не более 2ГБ.
Иначе - смотрите (14) |
|||
17
Господин ПЖ
04.07.11
✎
19:08
|
(15) память адресуюмую осью и память доступную процессу отличать умеем?
|
|||
18
МишельЛагранж
04.07.11
✎
19:09
|
(13) Можно выборкой неделю отбирать нужное, сортировать по вспомогательным регистрам, а потом лихо за минуту выбрать окончательно ))
Как получилось, что Менеджеров стало 6 млн? |
|||
19
Господин ПЖ
04.07.11
✎
19:09
|
>/3G
а клиент 1С про это знает? Он 3GB-aware? |
|||
20
МишельЛагранж
04.07.11
✎
19:09
|
*а, елки, что вообще за справочник такой огромный?
|
|||
21
Господин ПЖ
04.07.11
✎
19:10
|
например больных... или если шире взять - льготники
|
|||
22
МишельЛагранж
04.07.11
✎
19:11
|
(19) достаточно на SQL разрешить.
1С все равно выше своих "кэшей" долбаных не прыгнет - разрешай - не разрешай. Только запросы рубить уж если. |
|||
23
qwerty09
04.07.11
✎
19:11
|
(17) да, осознал свою ошибку, пардон.
|
|||
24
МишельЛагранж
04.07.11
✎
19:13
|
Надо было вообще другую платформу брать.
А не поделку для ларьков. Остается одно - выбирать месяц данные и делить на регистры по областям. И не делать больше гигантских объемов. |
|||
25
qwerty09
04.07.11
✎
19:14
|
смотрел через taskmanager на потребеление клиентским процессом памяти - оно держалось на уровне 200 мб и не дергалось, такое впечатление что затыкается либо субд либо сервер приложений или я не прав?
|
|||
26
Живой Ископаемый
04.07.11
✎
19:15
|
2(25)ну то есть уже rphost и sql server ты решил в таск менеджере не смотреть, подумал что на форуме оно надежнее?
|
|||
27
Господин ПЖ
04.07.11
✎
19:16
|
(25) ну может и скуль затыкаться... если он сам 32-bit на 32-bit оси и без костылей из (14)
|
|||
28
МишельЛагранж
04.07.11
✎
19:17
|
(250 клиент-то причем?
Вот порядок ваших проблем: SQL не хватает ресурсов (памяти и пр). Даже если SQL "потянет", 1С-сервер точно рехнется на таких данных. А клиент - что клиент, ему пофиг, он с сервера данные теперь получает. |
|||
29
qwerty09
04.07.11
✎
19:19
|
(26) я бы с радостью, но могу видеть только свои процессы, остальное только одмина надо просить показать...
(27) естественно скуль х64, ось win2008 r2 |
|||
30
Живой Ископаемый
04.07.11
✎
19:20
|
2(29) Могу себе представить сидит админ такой... "Так, 1Снику админские права не дам - ему-то зачем, у него Миста есть..."
|
|||
31
МишельЛагранж
04.07.11
✎
19:20
|
(29) ну вот пусть "админы"-начальники попы оторвут и придумают, какая СУБД лучше соответствует обработке таких объемов.
А не только деньги стричь да подчиненных погонять. |
|||
32
qwerty09
04.07.11
✎
19:22
|
(30) Нету его сейчас, будет только завтра. Конечно посмотрел бы если бы доступ был...
|
|||
33
0xFFFFFF
04.07.11
✎
19:23
|
(0) на скл написать хранимую процедурку, которая выберет все что нужно, через АДО пихать выборку в набор данных СКД. Ток так видимо.
|
|||
34
Живой Ископаемый
04.07.11
✎
19:23
|
2(32) вот иссяк разговор, честно... с аналогичной пользой можно обсудить погоду
|
|||
35
vde69
04.07.11
✎
19:25
|
>>>Неее, все 6 миллионов нафик не нужны, нужно выбрать данные, отобранные по некоторым условиям
покажи запрос который затыкается и напиши структуру таблицы (с учетом индексов и их порядка) |
|||
36
Эстет хренов
04.07.11
✎
19:26
|
структуру полей таблицы в студию
|
|||
37
Господин ПЖ
04.07.11
✎
19:26
|
(35) +1
банально "кривой" с точки зрения строения БД запрос лупит по всей таблице... |
|||
38
МишельЛагранж
04.07.11
✎
19:27
|
(33) а потом брать другой справочник? делать соединения? Отборы?
Да вообще нафиг заменить 1С-сервер и выкинуть его за ненадобностью. Ибо все можно через запрос на T-SQL и во внешний источник. (32) пишите докладную на идиотов-начальников, и пусть самое верхнее руководство принимает решение - будут покупать за свой счет или пойдут искать новую работу. Дальше только все будет глубже завязываться, что-то и заработает, но все равно рано или поздно встанет колом и будете виноваты вы. Как "вовремя не предупредивший". |
|||
39
Господин ПЖ
04.07.11
✎
19:29
|
>какая СУБД лучше соответствует обработке таких объемов.
каких таких объемов? 6 000 000 строк для скуля не много |
|||
40
МишельЛагранж
04.07.11
✎
19:29
|
(37) а как он будет еще лупить, если там - список 6-ти млн человек? И нужно выбрать - кто старше 40 лет??
|
|||
41
МишельЛагранж
04.07.11
✎
19:30
|
(39) ну конечно, не много.
Если не учитывать, что ~1 млн строк жрут уже более 2 ГБ. То да, не много. |
|||
42
МишельЛагранж
04.07.11
✎
19:30
|
* 1 млн строк в выборке
|
|||
43
Эстет хренов
04.07.11
✎
19:32
|
(37) обычный селект топ 100 должен отработать всегда на любой кривой таблице, пусть она даже содержит всех физ. лиц России.
|
|||
44
qwerty09
04.07.11
✎
19:32
|
(35) индексированы только поля код, наименование и дата, выбирается дата, наименование и еще три неиндексированных поля, отбор по дате либо неиндексированным полям производится, упорядочивание тоже по ним. Можно попытаться проиндексировать еще три поля, но помнится мне что в есть какой то предел на размер индекса...боюсь что база ёкнется, а с бекапа поднимать долго. Существует такое ограничение? Или то только в фаловой?
|
|||
45
Господин ПЖ
04.07.11
✎
19:33
|
(40) по индексу с высокой селективностью...
|
|||
46
qwerty09
04.07.11
✎
19:33
|
(44) *пардон "фаЙловой"
|
|||
47
Господин ПЖ
04.07.11
✎
19:34
|
(43) а где тут top 100? тут табличка с неизвестными индексами и текстом/планом запроса...
|
|||
48
Маленький Вопросик
04.07.11
✎
19:34
|
у меня бухия 1.6 за весь период имела около 6 мульенов записей в регистре бухгалтерии.... это много???
|
|||
49
Ахиллес
04.07.11
✎
19:36
|
(48) Семечки. если не попытаться конечно всё это в отчет не запихнуть и все 6 лямов на экран вывести.
(44) Посмотри какое количество записей возвращается запросом. |
|||
50
МишельЛагранж
04.07.11
✎
19:39
|
(48) вы отличаете, когда запрос берет итоги или по периоду данные, а когда - целиком весь регистр пережевывает?
Вот у ТС - второй вариант. (сколько раз уже слышал - "а у нас 250 Гб база! и 1С тянет! мы крутые! Слава 1С!" Выгнали бы несколько тысяч таких "начальничков", глядишь, другие бы умней стали). |
|||
51
Эстет хренов
04.07.11
✎
19:41
|
(46) сделай запрос ВЫБРАТЬ ПЕРВЫЕ 100
Код Наименование |
|||
52
vde69
04.07.11
✎
19:41
|
(50) у меня регистр СВЕДЕНИЙ не переодический примерно 4 мл записей, запросы к нему порядка 1..3 сек идут (и оптимизацией практически не занимались)
|
|||
53
qwerty09
04.07.11
✎
19:42
|
(49) не могу, процесс крашится при выполнении оного...сначала думает минуты 2-3, а потом вылетает с ошибкой
|
|||
54
Kraft
04.07.11
✎
19:43
|
(52) +1
|
|||
55
qwerty09
04.07.11
✎
19:44
|
(51) делал, выбирает, но тоже со скрипом
|
|||
56
Господин ПЖ
04.07.11
✎
19:45
|
(55) из под 1С? Роль какая - полные права?
|
|||
57
МишельЛагранж
04.07.11
✎
19:46
|
(52) да, конечно, я по мисте сервера изучал.
1С и 4 млн записей.... одним запросом... ну-ну. |
|||
58
qwerty09
04.07.11
✎
19:46
|
(56) да, да
|
|||
59
Kraft
04.07.11
✎
19:46
|
(56) канеш
|
|||
60
Kraft
04.07.11
✎
19:47
|
(4) таблица, таблице - рознь
|
|||
61
Kraft
04.07.11
✎
19:47
|
(60) 2(57)
|
|||
62
qwerty09
04.07.11
✎
19:49
|
да, забыл упомянуть, там 24 поля, 1/4 из них строки длиной ~100 символов и еще одно ~300 символов...
|
|||
63
Маленький Вопросик
04.07.11
✎
19:50
|
(52) какой регистр сведений - ответственные лица???? большая текучка кадров, да?
|
|||
64
Kraft
04.07.11
✎
19:51
|
(62) походу тупо памяти скулю (или серверу 1с ) не хватает. Заюзал бы на х64 (если есть возможность).
|
|||
65
Kraft
04.07.11
✎
19:51
|
(63) :D
|
|||
66
qwerty09
04.07.11
✎
19:51
|
если перенести все данные из справочника в РС что то изменится в лучшую сторону? Регистр сведений не страдает от лимита количества измерений аля Регистр накопления?
|
|||
67
Эстет хренов
04.07.11
✎
19:52
|
(62) а слона то он и не заметил
|
|||
68
qwerty09
04.07.11
✎
19:53
|
(64) дык у нас уже все что можно х64, и ось, и сервер приложений, и субд..разве что клиент 32-битный
|
|||
69
qwerty09
04.07.11
✎
19:54
|
(67) виноват : (
|
|||
70
Эстет хренов
04.07.11
✎
19:57
|
(66) это вообще-то разные абсолютно вещи.
посмотри как сделан в типовых адресный классификатор. |
|||
71
Sereja
04.07.11
✎
20:03
|
чем закончилась то история ?
|
|||
72
МишельЛагранж
04.07.11
✎
20:04
|
(66) в 1С есть ограничения на количество измерений РС/типы данных в них (что-то не более 900 символов на все измерения выделяется).
Записей должно быть не больше 999 999 999. |
|||
73
Ахиллес
04.07.11
✎
20:06
|
(69) Гонишь. Сервер не может крашиться просто при подсчете количества записей в таблице. Хоть миллиард записей будет, он тебе мгновенно вернёт единичку и девять ноликов. иначе у тебя уже физическое повреждение данных в таблицах или самих таблиц или железа.
|
|||
74
Kraft
04.07.11
✎
20:12
|
ТС что-то не договаривает...
|
|||
75
МишельЛагранж
04.07.11
✎
20:15
|
(74) только одно не договаривает: какой идиот взял 1С и заменил ей ранее работавшую СУБД.
|
|||
76
Kraft
04.07.11
✎
20:17
|
(75) есть и такое подозрение
|
|||
77
milan
04.07.11
✎
20:18
|
6 лямов скулю ниочем, рисуй нормальный запрос, строй нормальные индексы и будет счастье.
|
|||
78
Kraft
04.07.11
✎
20:21
|
структуру таблицы с запросом, я так понял, мы не увидим?
|
|||
79
МишельЛагранж
04.07.11
✎
20:23
|
(77) системные требования для обработки 6 млн записей озвучьте.
Также желательно - версии SQL и OS. |
|||
80
Ksandr
04.07.11
✎
20:24
|
(72) Откуда дровишки?
|
|||
81
МишельЛагранж
04.07.11
✎
20:24
|
(80) на измерения или количество записей?
|
|||
82
vde69
04.07.11
✎
20:25
|
>>>>да, забыл упомянуть, там 24 поля, 1/4 из них строки длиной ~100 символов и еще одно ~300 символов...
видать структуры мы не увидем, стыдно показывать! (0) переделывай регистр!!! |
|||
83
Ksandr
04.07.11
✎
20:26
|
(81) и на то и на то
|
|||
84
Ksandr
04.07.11
✎
20:27
|
(81) Хотелось бы более подробно почитать просто.
Ну и да у меня тут в РБ лежит порядка 2 млн записей - отчеты нормально строятся. |
|||
85
МишельЛагранж
04.07.11
✎
20:29
|
(83) измерения - попробуйте создать десяток измерений с типом "строка" и длиной 200 символов.
Про кол-во записей - читал, еще удивился, что так много для 1С. |
|||
86
NS
04.07.11
✎
20:31
|
Афигели. У меня только заявок в базе полтора мильёна, а в каждой табличная часть - и ничего не тормозит и не рушится.
(85) Троль? |
|||
87
asd3
04.07.11
✎
20:31
|
на данный момент имеет регист свед. более 12 мл. записей, грамотно продуманная структура и индексация полей и всё работает.
|
|||
88
МишельЛагранж
04.07.11
✎
20:33
|
(86) а я че-то сомневаюсь, что ты олимпиады выигрывал.
Разве что егэ. |
|||
89
NS
04.07.11
✎
20:34
|
У меня регистр остатки - несколько десятков миллионов записей. Ничего не продумано, работает типовой.
|
|||
90
МишельЛагранж
04.07.11
✎
20:34
|
(87) записей может быть и миллиард, и лежат они в 500-ах БД.
А выбирается - по 30-50 тыс. за раз. И все работает на C2D. |
|||
91
Ksandr
04.07.11
✎
20:35
|
(85) и правда
В процессе обновления информационной базы произошла критическая ошибка. по причине: Ошибка СУБД: Длина ключа индекса превышает максимально допустимую '_InfoR12145_ByDims_SSSSSSSSSSSS (_Fld12146, _Fld12147, _Fld12148, _Fld12149, _Fld12150, _Fld12151, _Fld12152, _Fld12153, _Fld12154, _Fld12155, _Fld12156, _Fld12157)' по причине: Длина ключа индекса превышает максимально допустимую '_InfoR12145_ByDims_SSSSSSSSSSSS (_Fld12146, _Fld12147, _Fld12148, _Fld12149, _Fld12150, _Fld12151, _Fld12152, _Fld12153, _Fld12154, _Fld12155, _Fld12156, _Fld12157)' |
|||
92
NS
04.07.11
✎
20:35
|
(88) Точно троль. Я угадал.
|
|||
93
МишельЛагранж
04.07.11
✎
20:36
|
Запросик напишите по всему регистру, олимпиадник, и покажите результат.
Да не по индексированным полям, а чтоб все "несколько десятков миллионов" попали. |
|||
94
NS
04.07.11
✎
20:36
|
Только тролю может прийти в голову создать десяток измерений типа строка. Да еще и длиной 200.
|
|||
95
МишельЛагранж
04.07.11
✎
20:36
|
(91) на самом деле - 1С не такая крутая штука, как разводят некоторые "олимпиадники".
|
|||
96
Kraft
04.07.11
✎
20:38
|
(62) (0) усиленно курим понятия: "Нормальные формы", "Индексы"
P.S. про НФ курим 3 раза... |
|||
97
NS
04.07.11
✎
20:39
|
(93) С Ж_ывотными стараюсь не общаться.
|
|||
98
Kraft
04.07.11
✎
20:40
|
(95) да просто не надо сравнивать мягкое с теплым
|
|||
99
МишельЛагранж
04.07.11
✎
20:42
|
(98) какая разница, если нужно обработать огромный запрос? не так, так через соединения-объединения.
1С всегда найдет отчет/запрос, чтобы перебирать всю таблицу, какая бы огромная она не была. |
|||
100
bazvan
04.07.11
✎
20:43
|
(100) за удачников
|
|||
101
МишельЛагранж
04.07.11
✎
20:43
|
Очень жаль, что в россиянии уже деградируют студенты и "олимпиадники".
К добру это точно не приведет. |
|||
102
Kraft
04.07.11
✎
20:44
|
(99) при чем тут 1с? Посмотри на структуру его таблицы. К тому же запрос так и не показан.
|
|||
103
bazvan
04.07.11
✎
20:44
|
(101) А как лно не в рОссии?? Нормально все? Очко не жмет???
|
|||
104
NS
04.07.11
✎
20:46
|
(103) Кормим троля? :) У него смысл жизни делать запросы с фильтрами по неиндекcированным полям, причем по десятку измерений типа строка, длина 200. ИМХО даун какой-то. Как он по-русски писать умудряется?
|
|||
105
bazvan
04.07.11
✎
20:47
|
(104) так через гугль транслит, он и читает так же.
|
|||
106
NS
04.07.11
✎
20:48
|
(105) Гугль с даунского умеет? :)
|
|||
107
МишельЛагранж
04.07.11
✎
20:49
|
(103) теорему БЖ скоро не осилит ни один 1С-сервер - настолько огромна база уже её база.
|
|||
108
Kraft
04.07.11
✎
20:50
|
(107) УГ
|
|||
109
bazvan
04.07.11
✎
20:50
|
(107) От точно через гугль переводиш и пишешь
|
|||
110
Злобный Фей
04.07.11
✎
20:55
|
МишельЛагранж - что за кловун?
|
|||
111
Kraft
04.07.11
✎
20:57
|
(110) судя по темам, большой любитель RLS ;)
|
|||
112
bazvan
04.07.11
✎
21:00
|
(110) Такой вот он северный олень
|
|||
113
vde69
04.07.11
✎
21:38
|
МишельЛагранж - почитай про кластерный индекс и про денормализацию данных, может и поймешь чего нибудь в программирование
|
|||
114
opty
04.07.11
✎
21:47
|
6 миллионов записей в таблице - не так уж и много для SQL
|
|||
115
ILM
гуру
04.07.11
✎
21:57
|
(0) Конфигурация типовая? ))))))))))
|
|||
116
qwerty09
04.07.11
✎
22:08
|
(71) она продолжается...
(73) тот запрос, что выбирает данные крашится. если просто через КОЛИЧЕСТВО(), то 6 368 616 записей (75) ниче не заменяли, наша база для учета продолжает себе работать, эти данные были импортированы из другой, не 1Совской базы (82) написал же что это справочник, а не регистр. Структуру приблизительно описал в (44) И да,не увидите, но по другим причинам... (100) ты печален (108) (112) развели тут срач понимаешь =) (114) если не смотреть на (62), то да - немного Проблема была в том что в скуле был установлен лимит на потребление озу = 8 ГБ, у меня туда достуа просто нет :( Про ограничение на размер индекса так никто и не ответил, скуль таким не страдает? Теперь проблема в объеме озу на сервере, начинается выполнение запроса и потихоньку скушивается вся память... Если проиндексирую необходимые поля и настрою отбор так, чтобы вывелось скажем 400 строк, память израсходуется только на то чтобы уместить эти 400 срок и индексы или нет? |
|||
117
opty
04.07.11
✎
22:16
|
(116) Значить офигительно круто спроектировано :)
И что у тебя в полях по сто символов ? У тебя по ним индекс строится ? Данные в них структурированные или в каждой строке таблицы уникальные строковые значения в полях ? |
|||
118
qwerty09
04.07.11
✎
22:22
|
(117) строковые поля уникальные, иначе бы сделал справочник под них. Индекс не строится ибо нафик не нужен - по ним ни сортировка, ни упорядочивание не выполняются. Индексированных полей всего 3, нарошно не ставил индексы куда попало, чтобы ускорить загрузку данных в 1С (на перестроение индекса куча времени уходит).
|
|||
119
bazvan
04.07.11
✎
22:24
|
(118) >строковые поля уникальные
6 000 000 - гуиды что ли? |
|||
120
opty
04.07.11
✎
22:26
|
(118) Тогда все равно не много , бусть себе лежат , жрать не просят :)
(119) Фига се гуид 300 символов - к каждому атому вселенной наверное :)) |
|||
121
qwerty09
04.07.11
✎
22:27
|
(119) нет, там просто текст - некое описание свойств объекта. Оно то может совпадать, но таких немного, а раздувать базу из-за сомнительного преимущества не хочется.
|
|||
122
opty
04.07.11
✎
22:28
|
И принципы нормализации баз все равно нарушены :(
|
|||
123
Snovy
04.07.11
✎
22:33
|
Я бы сделал какрас с одним справочником - Код, Наименование, Реквизит (строка,50). В справочник запихнул бы 6 млн. записей с рандомными кодом, наименованием и реквизитом (гнапрмер ГУИДы), каждый сотый элемент записывал бы с одинаковым значением реквизита - символов 40. А потом бы запросом нашел все элементы справочника с этим реквизитом. Если не рухнет - то наращивал бы реквизиты справочника. Если сразу рухнуло - то явно дело в связке платформа-СУБД.
|
|||
124
ILM
гуру
04.07.11
✎
22:34
|
(122) Прямо телепат, это из (0) Было ясно.
(121) Нужно однако структуру менять. Поля по 100 и 300 строк выносить в справочник, делать ссылки на регистр - тогда взлетит. Или в SQL лезть там смотреть на индексы, селективность, может порядок полей поменять.... |
|||
125
ILM
гуру
04.07.11
✎
22:35
|
(124) Не на, а в регистре.
|
|||
126
opty
04.07.11
✎
22:35
|
(123) Угу , третья нормальная форма
|
|||
127
opty
04.07.11
✎
22:38
|
(124) в 0 про несколько строковых полей по 100 и одному на 300 еще ничего не было :)
|
|||
128
qwerty09
04.07.11
✎
22:41
|
(123) тут уже вопрос в ограниченном объеме RAM на сервере.
(125) данные в справочнике, а не в регистре. Чет я сомневаюсь что от этого запрос меньше памяти станет потреблять. Что с индексами делать? Что по (116) скажете? Мне важно чтобы, получая данные из БД, не нагнуть сервак ненароком, там много народу работает... |
|||
129
ILM
гуру
04.07.11
✎
22:46
|
(128_ Так может лучше сначала сгруппировать что-нужно, посчитать аггрегаты нужные, а потом уже вывод на экран делать.
Я что-то, не уверен что все поля и все строки нужны. Тогда уже в OLAP залезте. 6 лямов строк да если каждая по 30кб это 180Гб. Прикинь через клиента тянуть и на экране показать? Нет прямиком в OLAP... |
|||
130
opty
04.07.11
✎
22:48
|
Если у тебя данные строковые будут хранится в регистре (да хоть бы и в другом справочнике) выигрыш будет огромный.
Никому не нужет отчет на миллионы строк , даже на сотни тысяч , все равно с какой то группировкой или выжимкой работают. Группировка деляется по справочнику без текстовых полей , все это там обрабатывается , а данные по гуидам берутся из второго справочника (регистра) Выигрыш будет огромным по экономии памяти |
|||
131
ILM
гуру
04.07.11
✎
22:51
|
(128) Совет, попробуй сделать запрос только выбирать не все символы из длинных столбцов, а скажем подстроку первые 25 - 50?
Если отработает, то дело в памяти. |
|||
132
ILM
гуру
04.07.11
✎
22:52
|
(130) Абсолютно присоединяюсь к оратору. Даже если платформа позволяет делать поля по 300 символов, это не значит, что так нужно делать.
|
|||
133
opty
04.07.11
✎
22:53
|
(129) Ну на практике если точно известно что в выборке гарантированно будет не более нескольких сотен строк , и строится она будет строго по индексированным полям , такую систему как у ТС в принципе применить можно (но не нужно :) )
Ни о каких сложных группировках речи идти не может в таком случае . |
|||
134
IamAlexy
04.07.11
✎
22:56
|
||||
135
IamAlexy
04.07.11
✎
22:59
|
+(134) и самый прикол в том что отчетом реально пользовались..
пришла аудиторская проверка - потребовала отчет по нужным оборотам.. и получила его :) |
|||
136
qwerty09
04.07.11
✎
22:59
|
(130) естественно никому не нужны тысячи строк на экране, об этом речи не идет. Эти строковые поля не участвуют ни в отборах, ни в сортировке, они просто будут выведены как доп. информация для анализа.
(132) вот это описание (100...300 символов) как раз очень важно для анализа данных, иначе бы не заморачивался. Кто то ответит по индексам? Понимаю что если их нет, то субд начинает шарится по всей таблице, что само по себе печально. Так вот, если их добавить, то по-идее субд по индексам найдет нужные записи и все будут счастливы. При этом не будет такого катастрофического расхода памяти? Хочу понять в какую сторону двигаться... |
|||
137
qwerty09
04.07.11
✎
23:01
|
(135) епт, о_0 походу, чтобы распечатать его пришлось бы небольшой лес вырубить...
|
|||
138
ILM
гуру
04.07.11
✎
23:03
|
(136) Ну важно, ты работоспособность запроса и сервака проверь?
|
|||
139
ILM
гуру
04.07.11
✎
23:04
|
+(136) Индексы помогают, но не всегда оптимизатор SQL их берёт там от кучи факторов зависит... Я спать ушед.
|
|||
140
opty
04.07.11
✎
23:04
|
Ну так в (123) тебе подсказали , выноси 300 строковую в отдельный справочник , да и остальные можно , в основном только гуиды
|
|||
141
IamAlexy
04.07.11
✎
23:06
|
(137) считали.. газелька с коробками бумаги :)
месяц работы принтеров... |
|||
142
IamAlexy
04.07.11
✎
23:06
|
(138) работают и формируют отчет с 2.5 млн. записей что еще проверить?
|
|||
143
vde69
04.07.11
✎
23:08
|
(0) предлагаю такую структуру
справочник с 3 индексироваными полями (те которые сейчас индексированые) + справочник ТипыПолей + регистр сведений, индексированые измемрения ссылкаНаСправочник и ТипПоля + индексированое поле ЗначениеРеквизита уверяю - что работать будет на порядок быстрее |
|||
144
opty
04.07.11
✎
23:13
|
(142) и опять же от структуры базы зависит , если она нормализована хорошо то по чему бы и нет , а ТС одна строка несколько килобайт оперативки в запросе отжирает .
При построении запроса строго по индексным полям , памяти отожрется сколько строк на выходе запроса будет |
|||
145
IamAlexy
04.07.11
✎
23:15
|
(144) ээээ 8ка, план счетов... запрос по вирт. таблице остатков...
это типа хорошо нормализированная база или как? |
|||
146
Sorm
04.07.11
✎
23:16
|
(0) Предлагаю создать SP, да и запустить её. Данные пусть на сервер же выкинет, куда-нибудь во времененую таблицу. Оттуда их забрать.
|
|||
147
qwerty09
04.07.11
✎
23:21
|
(143) звучит разумно, завтра попробую...
(146) Ну опять таки эта sp вынесет мне всю память с сервака. А как к временной таблице скуля из 1С обратиться? |
|||
148
opty
04.07.11
✎
23:22
|
У меня честно говоря такая плоская таблица используется для ведения расширенной системы логирования , с выходом на что то приближенное к аудиторскому следу . За цикл до свертки накапливается 2.5 миллиона записей примерно (строковых полей по 300 символов нет , всего полей 19 ,пара по 150 , по нескольким строится индекс) , но когда проектировал эту систему точно знал что выборке максимум пара тысяч строк будет и очень редко , как правило несколько десятков
(145) Хорошо , была бы плохо нормализованная у тебя на 1.6 миллиона строк не 600 мегов оперативы ушло а в десять раз больше . На субконто счетов ведь строго говря пишутся элементы справочника а не значения элементов справочника |
|||
149
Живой Ископаемый
04.07.11
✎
23:23
|
2(147) если релиз 14, то например из СКД как внешний АДО-источник данных... Но я еще не пробовал.
|
|||
150
Господин ПЖ
04.07.11
✎
23:24
|
МишаЛ. как обычно отжигает... вместо чтения букварей по скулю...
|
|||
151
qwerty09
04.07.11
✎
23:27
|
(149) 14-й релиз НЕтестовый уже вышел? обещали вроде до начала июля, 2-го числа смотрел - не было нифига
|
|||
152
IamAlexy
04.07.11
✎
23:29
|
(151) вышел вышел.. все уже даже поставили его давным давно.. только ты проспал все веселье...
|
|||
153
Sorm
04.07.11
✎
23:36
|
(147) Через com-объект ADO. На инфостарте есть примеры. Я в особо трудных случаях генерил таблицу на SQL(таблицу сеанса, через #), набивал данными из 1с, обрабатывал SP, данные кидал во вторую таблицу сеанса, забирал. Я не понимаю, как 6 млн записей могут убивать 8 гб сервер.
|
|||
154
qwerty09
04.07.11
✎
23:41
|
(152) надо обновиться тады. а где же гудеж с обсуждением новых фичЬ и ништяков?
(153) там много полей, некоторые содержат большие строки, потому и тяжелые такие...ну и на том же серваке еще одна база крутится, тесновато им было. |
|||
155
IamAlexy
04.07.11
✎
23:47
|
(154) а видимо нет косяков.. вот и молчат все в тряпочку... наслаждаются...
|
|||
156
Живой Ископаемый
04.07.11
✎
23:48
|
2(154) чувак.. ты чего:
v8: 8.2.14 Ошибки. Впечатления. |
|||
157
qwerty09
04.07.11
✎
23:53
|
(156) да, чет я провтыкал, 557 постов блин : ) спс.
|
|||
158
pectopatop
05.07.11
✎
00:21
|
(0) имеется (на Оракле+софт, а не МССКЛ и 1С) OLTP система, в ней висят постоянно ~600 юзеров. Пару таблиц под миллиард записей, за 100млн больше десятка таблиц. Кое-где соединяются друг с другом и/или маппинги происходят 100млн таблиц друг на друга (правда идти могут по неск.часов, и используются технологии Oracle Streаms, Data Caption..). Дамп базы ~4Тб. Хранилище порядка 2900 таблиц включает. Работает!
( или почитай про Одноклассники/ВКонтакте ) Поля строковые тоже вовсю используются. |
|||
159
NS
05.07.11
✎
00:22
|
(153) Могут, но только в одном случае - если он их все в память тащит.
|
|||
160
Reaper_1c
05.07.11
✎
01:12
|
Пиндец, товарищи. С таким количеством полей с самого начала нужно было юзать механизм дополнительных характеристик. Выделять поля уникального ключа в справочник, идентификаторы остальных полей хранить в ПВХ, значения в РС. Отчеты бы на компоновке строились на раз-два. А так сервер СУБД потеет только от одной выборки нескольких строк - ради 3 полей в 3 строчках тащить 70 полей в тех же 3-х строчках. Диски горят, кэш рэйда забит, очередь стоит. А ведь еще небось и память кривыми запросами пожирается...
|
|||
161
NS
05.07.11
✎
01:20
|
(160) Да нет, тут есть очень грамотный товарищ, который уверен что это 1С (или SQL?!) 6 миллионов записей вытянуть ну никак не может. Это очень большой спец в программировании и проектировании БД.
|
|||
162
H A D G E H O G s
05.07.11
✎
02:22
|
Я рекомендую гражданину МишельЛагранж с его постом (72) убиться головой о стену
http://alldba.ru/index.php?option=com_content&view=article&id=278:-microsoft-sql-server&catid=45:microsoft-sql-server&Itemid=119 |
|||
163
H A D G E H O G s
05.07.11
✎
02:25
|
МишельЛагранж еще тот кловун.
Сегодня отжигал про глобальный общий список значений, как реквитиз объекта, хранимого в базе. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |