|
Индексирование реквизитов | ☑ | ||
---|---|---|---|---|
0
Aleksey1989
17.02.14
✎
09:11
|
Добрый день. Помогите, пжл, советом. В документе есть реквизит, который не индексируется. Если я включу индексирование для этого реквизита, а потом выключу, то индексы для этого реквизита из БД удалятся?
|
|||
1
Lama12
17.02.14
✎
09:13
|
Проверь на копии.
|
|||
2
1Сергей
17.02.14
✎
09:13
|
они не будут использоваться
|
|||
3
Aleksey1989
17.02.14
✎
09:14
|
(2) Т.е. в базе они останутся?
|
|||
4
Поpyчик-4
17.02.14
✎
09:18
|
По логике выключение индексирования должно означать DROP INDEX index_name ON tbl_name или ALTER TABLE tbl_name DROP INDEX index_name
|
|||
5
ДенисЧ
17.02.14
✎
09:19
|
удалятся
|
|||
6
Мимохожий Однако
17.02.14
✎
09:22
|
(0)Для чего такие манипуляции?
|
|||
7
hhhh
17.02.14
✎
09:22
|
(3) чтобы размер базы уменьшился, делай ТИИ сжатие базы
|
|||
8
Aleksey1989
17.02.14
✎
09:24
|
(6) Есть самописная конфа, в которой есть форма списка с отбором по куче реквизитов, которые не являются индексными и которые очень часто используются.
|
|||
9
Мимохожий Однако
17.02.14
✎
09:25
|
ну, и?
|
|||
10
Поpyчик-4
17.02.14
✎
09:25
|
(7) Сжатие таблиц только для файловой базыю
|
|||
11
Aleksey1989
17.02.14
✎
09:28
|
(9) Если реквизиты будут индексными, в этом случае быстрее же будет происходить отбор. База занимает почти 4 гБ, работает в файловом режиме, поэтому и интересуюсь, удалятся ли в случае чего индексы или нет.
|
|||
12
hhhh
17.02.14
✎
09:28
|
(10) а в SQL если нажать? Не сработает?
|
|||
13
Мимохожий Однако
17.02.14
✎
09:34
|
"Вот оно что, Михалыч..". Индексируй, не индексируй. А поможет только свёртка, если на клиент-сервер.
|
|||
14
Мимохожий Однако
17.02.14
✎
09:34
|
*если НЕ клиент-сервер
|
|||
15
Поpyчик-4
17.02.14
✎
09:35
|
(12) Средствами SQL сработает.
|
|||
16
Torquader
17.02.14
✎
12:21
|
(15) Если хочется, чтобы всё было гладко - то выгрузка и загрузка.
Просто, нужно понимать, что SQL специально оставляет свободные места в таблицах, чтобы можно было вставлять элементы без необходимости открытия новых страниц для таблицы. Если поиск по нескольким реквизитам, то нужно понимать, что или вы сделаете все возможные индексы или всё равно будет выполняться сканирование таблицы. SELECT ... FROM [Table] WHERE A=Val1 AND B=Val2 будет требовать наличия индекса A,B или B,A - если его нет, то будут рассматриваться A или B - если есть оба, то SQL-сервер по каким-то алгоритмам будет выбирать какой использовать. |
|||
17
Torquader
17.02.14
✎
12:24
|
А - версия-то файловая.
Тут немного хуже - наличие индексов предполагает, что при записи они будут обновляться, что создаст дополнительную нагрузку на файловый движок, а так как в случае файловой версии блокируется вся таблица, то будут некоторые ожидания, если в эту таблицу ведётся частая запись. |
|||
18
H A D G E H O G s
17.02.14
✎
12:26
|
А если индексировать еще и реквизит типа Организация, Контрагент, Склад - то вообще никаких плюсов из за низкой селективности.
|
|||
19
Torquader
17.02.14
✎
12:28
|
Поэтому, я бы посмотрел - какие отборы пользователи устанавливают и индексировал бы только те поля, которые практически во всех отборах встречаются и содержат наибольшее количество различных значений.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |