Текущее время: Пт, июл 18 2025, 23:37

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Вопрос по оптимизации
СообщениеДобавлено: Пт, окт 25 2013, 15:01 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Дорого дня!
Подскажите, пожалуйста, по след. вопросу:
Есть таблица с N ключевыми полями: A1...AN
Есть также аналогичная таблица, но с ключом A1, для которой есть индекс по одному из ключей - Ax.
В какой таблице будет быстрее работать выборка по полю Ax?

P.S. вопрос не из пальца высосан, есть конкртеный пример, и я не могу понять, зачем сделана отдельная таблица вместо индекса.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по оптимизации
СообщениеДобавлено: Пт, окт 25 2013, 16:06 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, ноя 29 2012, 16:47
Сообщения: 85
А что мешает сделать тесты? на время7
Как говорил форест гамп "дерьмо случается" - возможно косяк?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос по оптимизации
СообщениеДобавлено: Пт, окт 25 2013, 16:06 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
В общем случае быстрее будет выборка по второй таблице, у которой есть персональный индекс Ax, т.к. в этом случае происходит оптимальный поиск по одному полю (грубо говоря, прыгаем по какому-нибудь B-дереву). Для первой таблицы придется линейно прочитать весь индекс, что дольше.

Однако, делать отдельную таблицу для этого не имеет смысла - проще сделать новый индекс для первой таблицы.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по оптимизации
СообщениеДобавлено: Пт, окт 25 2013, 16:54 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
troy написал(а):
P.S. вопрос не из пальца высосан, есть конкртеный пример, и я не могу понять, зачем сделана отдельная таблица вместо индекса.

Может вдохновились примером BSEG и его индексных таблиц? :)

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по оптимизации
СообщениеДобавлено: Пт, окт 25 2013, 17:23 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
Наверное :wink: Судя, по различию в ключевых полях - мне кажется в этих таблицах разный набор полей. И во второй таблице меньше записей - иначе дублировались бы записи с одинаковыми значениями у первого ключевого поля. Вот ради уменьшения записей и могли сделать вторую табличку.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по оптимизации
СообщениеДобавлено: Пт, окт 25 2013, 19:16 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Crystal_Ra написал(а):
А что мешает сделать тесты?

На разработке время почти одинаковое, даже без индексов ))
ArmAnn написал:
Может вдохновились примером BSEG и его индексных таблиц? :)

Там-то понятно, кластер и записей в индексных таблицах меньше.
А вот как насчет VBAK и VAKPA?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по оптимизации
СообщениеДобавлено: Пт, окт 25 2013, 22:12 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
На тему SD'шных таблиц существует нота 185530. Правда на вопрос "Почему?", она ответа не дает.
Может так сделали давным-давно, когда базы данных не умели адекватно работать с индексами, а теперь тащут в виде легаси?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по оптимизации
СообщениеДобавлено: Пт, окт 25 2013, 22:34 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, ноя 29 2012, 16:47
Сообщения: 85
troy написал(а):
Crystal_Ra написал(а):
А что мешает сделать тесты?

На разработке время почти одинаковое, даже без индексов ))


Разовъю чуть-чуть:
1. Важна реал база , обычно на разработке база совсем не та что в продуктиве.
2. Важно залить скажем 2 мульена записей, а потом выборочно удалить лишний мульен, но не по порядку )))
3. Важно как вы проводите тесты ))) -
первая выборка где длинный ключ (индексная таблица) - используем все ключи для выборки
вторая выборка где ключ только A1 - используем тоже полный ключ как для индексной таблицы )))
Сравниваем время... Разница будет по любому ...


Теперь мысль по существу вопроса: вот индексную таблицу мы можем использовать для чтения по всем полям из ключей.
В базе будет избыточность по данным (дисковое пространство будет подъедать), но разработчик точно уверен что этот ключ будет создан в базе :!:
А в случае индексов , с учетом настроек самих индексов , с учетом их легкой изменяемости (захотел создал захотел отключил или удалил или отрубил на инстанции ...) и алгоритма их использованием БД движком... Ну совсем не прозрачно...

Так что вопрос откуда быстрее - может не корректно спрашивать?
Скорее гарантированное чтение на любой БД по ключу - а это максимальная скорость.
Как-то так.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос по оптимизации
СообщениеДобавлено: Пн, окт 28 2013, 12:40 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
weise написал(а):
Для первой таблицы придется линейно прочитать весь индекс, что дольше.

Вроде никто не возражал. Примем за истину ))
weise написал(а):
На тему SD'шных таблиц существует нота 185530.

Как было бы хорошо, если бы еще сам SAP этих рекомендаций придерживался. Особенно последний пункт порадовал. За ноту спасибо.
Crystal_Ra написал(а):
1. Важна реал база , обычно на разработке база совсем не та что в продуктиве.

Дык я про это и написал, что есть сложности с поиском оптимального решения при использовании практического подхода. Поэтому для упрощения озадачился теоретическим вопросом. А насчет надежности таблицы полностью согласен, никаких тебе задних мыслей.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB