|
Индексирование | ☑ | ||
---|---|---|---|---|
0
Max Street
01.02.13
✎
17:55
|
Доброго времени суток. Помогите,
пожалуйста, разобраться с индексиованием. 1) В свойствах объектов конфигурации есть свойство "Индексирование". В каких случаях нужно использовать это свойство или, может быть, достаточно индексировать поля в запросе на закладке "Индекс"? 2) По какому принципу индексировать поля в запросе? В интернете вычитал, что индексировать нужно только те поля, к которым наиболее часто обращаюсь, т.к. слишком большое количество индексов негативно отразится на производительности. Но все-таки, как правильно выбирать индексируемые поля? Пару дней интернет поисков ничего толкового не дали. Заранее благодарю за любую помощь :) |
|||
1
sapphire
01.02.13
✎
17:59
|
1) Если по этому полю планируется использовать отборы в запросах и т.п.
2) Все зависит от запроса и количества данных. Индексируют временные таблицы, а не сам результат запроса. |
|||
2
Ayvengo
01.02.13
✎
18:00
|
Ну так ты же сам себе по пункту 1 ответил в пункте 2 :)
|
|||
3
Ayvengo
01.02.13
✎
18:02
|
Вот он правильный ответ:
> что индексировать нужно только те поля, к которым наиболее часто обращаюсь, А вот к которым ты будешь обращаться - это определять уже тебе - разработчику. А вообще не индексируй, заметишь проблемы - ставь галку. |
|||
4
H A D G E H O G s
01.02.13
✎
18:04
|
- Индексировать только то, по чему будешь искать, соединять, фильтровать.
- Индексировать поля таблиц размерами больше 1000 строк (где то так) - Индексировать поля высокой селективности, как пример Поле1 Поле2 1 10 1 15 1 89 Поле1 - низкоселективно, поле2 - высокоселективно. |
|||
5
Max Street
01.02.13
✎
18:04
|
Спасибо
|
|||
6
Max Street
01.02.13
✎
18:07
|
Спасибо всем. стало немного понятнее)
|
|||
7
МихаилМ
01.02.13
✎
18:37
|
(0)
у запроса не закладки. собственно при использовании индексов есть 1 проблема - чем больше индекс, тем дольше запись данных. следствия: разрастание бд (увеличение времени воззтановления из копии), нехватка озу (из-за кэширования) 2 проблема - 1с8 не умеет создавать произвольные индексы составные. а индексы по 1 полю могут быть неэффективными 3 1с не умеет в запросах указывать используемые индексы сответственно при проектировании расчитывается частота чтения-записи. предельное и удовлетворительное время ожидания реакции. вычисляется допустимое время обработки потоков данных и предельные размеры потоков и индексов. для oltp сотношение данных и индексов 1:1 для olap 1:20. так как 1с как правило смешанная система, для таблиц(объектов кофигурации) нужно именно расчитвать размеры индексов. для таблиц до 10 000 записей и в случае кэширования оптимизаторы выполнения запросов могут предпочесть полные переборы (сканирование) не обращаясь к данным индексов. управление индексами больше относится к эксплуатации чем к проектированию от проектировщика требуется грамотное создание кластерных индексов т.к. на них может быть построена логика работы ПО. |
|||
8
H A D G E H O G s
01.02.13
✎
18:42
|
"1с8 не умеет создавать произвольные индексы составные. "
Тоесть? |
|||
9
H A D G E H O G s
01.02.13
✎
18:43
|
(7) По моим наблюдениям, fullscan SQL использует при размере таблицы меньше 600 строк.
|
|||
10
H A D G E H O G s
01.02.13
✎
18:45
|
(7) <не умеет в запросах указывать используемые индексы>
Хинты штоле? Ага, давать их 1С-негу, великолепно! Михаил, опять словоизвержение, без конкретики. H A D G E H O G s смотрит на вас как-то недовольно, свирепо и в то же время грустно и с недоумением. |
|||
11
МихаилМ
01.02.13
✎
18:50
|
(8)
пример есть индекс поле1,поле2,поле3. кластерный в рамках 1с8(0,1,2) не удастся создать индекс поле3,поле2,поле1 |
|||
12
H A D G E H O G s
01.02.13
✎
18:53
|
(11) Не понял.
Давай в терминах 1С |
|||
13
МихаилМ
01.02.13
✎
19:01
|
(9)
по моим наблюдениям для мс скл 2005 при 100% попадании в кэш сканирование таблиц предпочитается и для таблиц больше 10000 строк. видел 20000. тк все используемые 1с субд имеют сложные адаптивные механизмы может расчет идет от размера таблиц или еще чего-нибуть про 10000 я где-то прочитал. |
|||
14
МихаилМ
01.02.13
✎
19:02
|
(10)
хинты и управление индексами больше нужны администратору БД чем проектировшщику, тк тюнинг индексов происходит в процессе эксплуатации |
|||
15
H A D G E H O G s
01.02.13
✎
19:04
|
(14) Или по отзывам клиентов.
|
|||
16
H A D G E H O G s
01.02.13
✎
19:04
|
Что насчет составных полей?
|
|||
17
Reset
01.02.13
✎
19:04
|
(12) перевод
РС ЦеныНоменклатуры: ТипЦены Номенклатура Характеристика нельзя сделать индекс (Характеристика,Номенклатура,ТипЦены) |
|||
18
H A D G E H O G s
01.02.13
✎
19:07
|
(17) Пацаны из 1С об этом не знают и делают
|
|||
19
H A D G E H O G s
01.02.13
✎
19:10
|
(17) Для твоего случая 1С создаст 3 индекса,
ТипЦены Номенклатура Характеристика Номенклатура ТипЦены Характеристика Характеристика ТипЦены Номенклатура |
|||
20
H A D G E H O G s
01.02.13
✎
19:10
|
(17) А, все, понял
|
|||
21
H A D G E H O G s
01.02.13
✎
19:11
|
(17) А почему?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |