Текущее время: Вт, июл 22 2025, 20:41

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: поиск по первичному ключу
СообщениеДобавлено: Вт, июл 31 2007, 18:25 
Начинающий
Начинающий

Зарегистрирован:
Пт, дек 29 2006, 18:43
Сообщения: 4
Уважаемые господа. Хотелось бы прояснить следующий вопрос. Предположим , я имею в прозрачной таблице первичный ключ из 3 полей(f1,f2,f3). Мне нужно сделать SELECT только по f2. При выполнении SElect * from ddd into table ggg Where f2 = cond будет ли задействоваться ключ или это будет какой-то перебор. Может для корректности надо добавить типа Where f1 in sf1 AND f2 = cond , где sf1 -пустой select-options? СПАСИБО


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июл 31 2007, 19:03 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Чтобы ответить на все ваши вопросы достаточно посмотреть планы выполнения запроса в разных вариантах.

В крацее по убыванию быстродействия:
1. Поиск по полному ключу (индексу) - unique index scan
2. Поиск по частичному ключу (индексу) - range index scan
3. Поиск по полям не входящим в ключ (индекс) - full table scan

Цитата:
Может для корректности надо добавить типа Where f1 in sf1 AND f2 = cond , где sf1 -пустой select-options?

Не стоит. Ничего не изменится.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: поиск по первичному ключу
СообщениеДобавлено: Ср, авг 01 2007, 07:08 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
[quote="anatolyl"]Уважаемые господа. Хотелось бы прояснить следующий вопрос. Предположим , я имею в прозрачной таблице первичный ключ из 3 полей(f1,f2,f3). Мне нужно сделать SELECT только по f2. При выполнении SElect * from ddd into table ggg Where f2 = cond будет ли задействоваться ключ или это будет какой-то перебор.
Так сходу никто вам тут никто не скажет, нада сматреть самому:

1) Транзакция SCI - Code Inspector умный товарищ сразу вам
поскажет, если индекс не подхватится - это самое простое.
2) Транзакция ST05- Трассировка-тоже неплохая весч


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: поиск по первичному ключу
СообщениеДобавлено: Ср, авг 01 2007, 08:11 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
anatolyl написал(а):
SElect * from ddd into table ggg Where f2 = cond

Следует, наверное, уточнить, что f2 не является частичным ключом.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 01 2007, 08:24 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, май 26 2005, 11:36
Сообщения: 651
Откуда: Киев-Москва
Создайте отдельный неуникальный индекс по этому полю. И отследите в трассировке ST05, в explain plan, что он подхватился.

_________________
Рисую потоки данных.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: поиск по первичному ключу
СообщениеДобавлено: Ср, авг 01 2007, 14:24 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
anatolyl написал(а):
Может для корректности надо добавить типа Where f1 in sf1 AND f2 = cond , где sf1 -пустой select-options?

Корректней не станет.
f1 in sf1 не SQL-выражение и будет упрощено, т.е. просто откинется, если sf1 пустое.


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

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


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

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


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

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