![]() |
|
v7: 1с++ Индексированная таблица - скорость создания индексов | ☑ | ||
---|---|---|---|---|
0
dk
15.02.12
✎
13:20
|
Исходные
1с 7.7 1с++ MS SQL 2000 получаю запросом таблицу - около 4000 записей выгружаю в индексированную таблицу и создаю 7 индексов, некоторые накопительные типа Инд1, Инд2, Инд1Инд2Инд3, ... Проблема медленно создаются индексы - около 2 минут сначала нашел косяк - индекс по наименованию 50 символов строился, однако при смене индекса с наименования на ссылку - скорость формированию индексов не изменилась. --- Зачем стока индексов? Для того чтобы выводить итоги в различных разрезах. --- Вопросы 1. Можно ли заменить 4 индекса Инд1, Инд1Инд2, Инд1Инд2Инд3, Инд1Инд2Инд3Инд4 только одним Инд1Инд2Инд3Инд4? Если можно, то как пользоваться итогами лишь по части индекса? 2. Поможет ли перенос из индексированной таблицы в темповую таблицу на скуле и построение индексов в темпе? 3. Может есть более простые способы получения итогов в различных измерениях - без использования индексов? |
|||
1
Гефест
15.02.12
✎
13:24
|
Почему в запросе итоги не посчитать?
|
|||
2
dk
15.02.12
✎
13:25
|
посчитать можно
вопрос как их потом из ТЗ вытащить |
|||
3
leshikkam
15.02.12
✎
13:25
|
Покажи код создания индексов:
Может упустил использование модификатора '*'? (по внутреннему представлению) например у тебя в индексе ("индНоменклатура","Номенклатура",0); а вот так: ("индНоменклатура","*Номенклатура",0) будет намного быстрее. |
|||
4
trad
15.02.12
✎
13:26
|
(0)
потенциально отвечающим могут стать интересны селект-лист запроса с типизацией и индексные выражения |
|||
5
Гефест
15.02.12
✎
13:28
|
(2) как то так http://www.script-coding.com/Direct_queries.html#9.
|
|||
6
Гефест
15.02.12
✎
13:28
|
(5) глава 9
|
|||
7
viktor_vv
15.02.12
✎
13:36
|
А метод индексированной таблицы Группировать() чем не устраивает ? В принципе тоже самое, но быстрее и выводить легко.
|
|||
8
dk
15.02.12
✎
13:51
|
(3) верно, без внутреннего представления - тупо через названия колонок
(4) запрос нет смысла показывать, а индексные выражения тупо названия колонок, хотя в самих колонках данные типизированы до справочников и документов (5) спасибо, интересно. но в данном случае итоги нужны в нескольких несовпадающих разрезах, например Колонка1Колонка2Колонка3 и потом Колонка1Колонка5 (7) дык потом эту сгруппированную все равно придется перебирать, чтобы до конкретного разреза добраться ---- пока попробую индексы через * задать - думаю должно ускорить до приемлемой скорости |
|||
9
ЧеловекДуши
15.02.12
✎
13:55
|
4000 - это же мало :)
Может стоит подумать об другом методе. |
|||
10
Mikeware
15.02.12
✎
13:56
|
4к строк - это ж слезки...
что-то нечисто... не должно более секунды-двух... |
|||
11
viktor_vv
15.02.12
✎
14:01
|
(8) "верно, без внутреннего представления - тупо через названия колонок"
Че-то я не понял, так ты как задаешь индексное выражение ? Так : ("индНоменклатура","Номенклатура",0); Тогда понятны тормоза. |
|||
12
dk
15.02.12
✎
14:04
|
(11) угу
|
|||
13
trad
15.02.12
✎
14:11
|
(8) а я запрос и не предлагал показать.
ну нет, так нет чо. |
|||
14
viktor_vv
15.02.12
✎
14:29
|
(12) Ну тогда понятно почему "однако при смене индекса с наименования на ссылку - скорость формированию индексов не изменилась."
Добавь модификаторы для внутреннего представления. Вроде как тебе порядок следования не особо важен, так как индексы используешь только для фильтров. |
|||
15
dk
15.02.12
✎
14:52
|
всем спасибо
добавление * в индексное выражение ускорило формирование индексов до менее 1 сек )) да и итоги намного шустрее стали получаться - забегал отчет вместо ползанья |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |