Текущее время: Сб, июл 19 2025, 12:26

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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