Текущее время: Вс, июл 20 2025, 12:50

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Теоретический вопрос про скорость SELECT по не ключевому полю
СообщениеДобавлено: Пт, ноя 12 2010, 12:14 
Начинающий
Начинающий

Зарегистрирован:
Вт, май 30 2006, 09:22
Сообщения: 24
Откуда: Краснодар
Интересует теоретический вопрос, понятно что на практике такого делать не надо.

Влияет ли на скорость выполнения SELECT порядковый номер поля в таблице, указанного как условие SELECT?

Т.е., например, в таблице бд нет индексов, все поля CHAR10, в таблице 70 полей.
Поля с col03 по col70 не ключевые.
1. select * from dbtab where col70 = условие.
1. select * from dbtab where col03 = условие.
Какой селект отработает быстрее 1 или 2; оба отработают одинаково?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Теоретический вопрос про скорость SELECT по не ключевому полю
СообщениеДобавлено: Пт, ноя 12 2010, 12:45 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
Одинаково, либо разница будет в пределах статистической погрешности.
БД загружает данные сначала в память, а там что третье по счету поле, что семидесятое - роли не играет

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Теоретический вопрос про скорость SELECT по не ключевому полю
СообщениеДобавлено: Пт, ноя 12 2010, 15:25 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Minimize the Search Overhead

Костя, быстрее будет тот вариант, под который ты индекс слепишь ) @ Капитан Очевидность


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Теоретический вопрос про скорость SELECT по не ключевому полю
СообщениеДобавлено: Сб, ноя 13 2010, 12:27 
Начинающий
Начинающий

Зарегистрирован:
Вт, май 30 2006, 09:22
Сообщения: 24
Откуда: Краснодар
То John Doe: это понятно) Интересовала именно та ситуация, что я описал.
То ArmAnn: Спасибо за ответ)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Теоретический вопрос про скорость SELECT по не ключевому полю
СообщениеДобавлено: Сб, дек 11 2010, 10:14 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 12 2008, 07:40
Сообщения: 196
Откуда: Екатеринбург
Пол: Мужской
Зависит от СУБД и релиза СУБД.

Например, оптимизатору ORACLE 9i иногда это важно для выбора нужного индекса. 10g пишут, что все равно.

_________________
ай, каррамба


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Теоретический вопрос про скорость SELECT по не ключевому полю
СообщениеДобавлено: Пн, дек 13 2010, 09:52 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
ivanovio написал:
Например, оптимизатору ORACLE 9i иногда это важно для выбора нужного индекса.

Интересно посмотреть на такой запрос. На практике при работе со связкой 4.7 / Oracle 9 такого не наблюдал :?

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Теоретический вопрос про скорость SELECT по не ключевому полю
СообщениеДобавлено: Пн, дек 13 2010, 11:55 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 12 2008, 07:40
Сообщения: 196
Откуда: Екатеринбург
Пол: Мужской
а вот у меня было - правда лечилось сбором более подробной статистики оптимизатора для таблицы. Иногда приходилось хардкодить нужный индекс хинтами. После переезда на 10g ушло.

УПД.
Вообще по большому счету проблема может возникнуть при неаккуратном размножении индексов на таблице. Если есть два похожих индекса - оптимизатор путается и может создать неоптимальный план. С каждой новой версией оракла оптимизатор все умнее становится.
Если память не изменяет, в OPTIMIZATION GUIDE для 9i написано, что вперед наиболее селективные поля нужно использовать, остальные дальше, а в 10g - не написано.

_________________
ай, каррамба


Последний раз редактировалось ivanovio Пн, дек 13 2010, 12:00, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Теоретический вопрос про скорость SELECT по не ключевому полю
СообщениеДобавлено: Пн, дек 13 2010, 11:57 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
ivanovio написал:
лечилось сбором более подробной статистики оптимизатора для таблицы.

То есть порядок следования полей в запросе ни при чем 8)

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Теоретический вопрос про скорость SELECT по не ключевому полю
СообщениеДобавлено: Пн, дек 13 2010, 12:03 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 12 2008, 07:40
Сообщения: 196
Откуда: Екатеринбург
Пол: Мужской
для выбора индекса - при чем был, то есть оптимизатор безошибочно хватал верный индекс, если в условии поля как в индексе шли, но при точной статистике хватал правильно даже если порядок другой. А при стандартном 1% estimate для таблицы большого размера генерировался плохой план с большим числом вынужденных обращений к диску.
както так.

_________________
ай, каррамба


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Теоретический вопрос про скорость SELECT по не ключевому полю
СообщениеДобавлено: Пн, дек 13 2010, 13:15 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
ivanovio написал:
А при стандартном 1% estimate для таблицы большого размера генерировался плохой план с большим числом вынужденных обращений к диску.

Я исхожу из того, что в программе не нужно менять порядок полей в Where, если статистика собрана верно.
Если она собрана неверно - это работа администраторов БД, а не разработчиков :)
ЗЫ: У нас кстати оценка индексов минимум по 10% собирается.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Теоретический вопрос про скорость SELECT по не ключевому полю
СообщениеДобавлено: Пн, дек 13 2010, 16:43 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 12 2008, 07:40
Сообщения: 196
Откуда: Екатеринбург
Пол: Мужской
Удав написал(а):
ivanovio написал:
А при стандартном 1% estimate для таблицы большого размера генерировался плохой план с большим числом вынужденных обращений к диску.

Я исхожу из того, что в программе не нужно менять порядок полей в Where, если статистика собрана верно.
Если она собрана неверно - это работа администраторов БД, а не разработчиков :)
ЗЫ: У нас кстати оценка индексов минимум по 10% собирается.


1% для больших объектов не то чтобы неверно, просто иногда недостаточно и надо перенастраивать размер семпла для объекта (зависит от каждого конкретного случая). Для всех крутая точность не нужна - место ж не бесплатное. Да и время сбора...

вопрос был задан без оглядки на качество статистики, добросовестность дба и т.д., поэтому и ответ был дан "в общем". При опред. условиях иногда важно получается. Я с таким сталкивался, вдруг кто-то не дай бог тоже столкнется - мож сей пост кому поможет.

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

а разработчикам неплохо бы тоже в общих чертах засаповскую матчасть представлять...

_________________
ай, каррамба


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Теоретический вопрос про скорость SELECT по не ключевому полю
СообщениеДобавлено: Пн, дек 13 2010, 18:26 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
ivanovio написал:
Все-таки я для себя решил стараться порядок полей соблюдать исходя из того, на какой индекс нацеливаюсь. Почему бы не обезопасить себя от ленивых админов, аккуратно выстроив условие...

Аккуратность естественно не помешает, я сам так пишу условия выборки.
Но не надо путать наглядность с быстродействием - посмотрите план выполнения запросов в ST05 и выставляйте претензии ленивым администраторов БД :wink:

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Теоретический вопрос про скорость SELECT по не ключевому полю
СообщениеДобавлено: Пн, дек 13 2010, 20:47 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Удав написал(а):
ivanovio написал:
Все-таки я для себя решил стараться порядок полей соблюдать исходя из того, на какой индекс нацеливаюсь. Почему бы не обезопасить себя от ленивых админов, аккуратно выстроив условие...

Аккуратность естественно не помешает, я сам так пишу условия выборки.

+100 каждому :pivo:
Накувыркавшись в свое время с SYBASE и Informix, я тоже стараюсь не искушать оптимизатор! :D
А еще, лучше не плодить похожих индексов...

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Теоретический вопрос про скорость SELECT по не ключевому полю
СообщениеДобавлено: Вт, дек 14 2010, 09:35 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 12 2008, 07:40
Сообщения: 196
Откуда: Екатеринбург
Пол: Мужской
Удав написал(а):
Аккуратность естественно не помешает, я сам так пишу условия выборки.
Но не надо путать наглядность с быстродействием - посмотрите план выполнения запросов в ST05 и выставляйте претензии ленивым администраторов БД :wink:


Ну что ж, чем не подход.

Удав написал(а):
А еще, лучше не плодить похожих индексов...


это точно.
:)

_________________
ай, каррамба


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

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


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

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


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

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