|
Простой составной индекс
|
|||
---|---|---|---|
#18+
Успорился с коллегой ))) есть составной индекс b, c (b селективность повыше) на a таблице иных нет индексов select a.d, a.f, a.h where a.b = t1 and a.c = t2 или select a.d, a.f, a.h where a.b = t1 выбирающие одно и тоже кол-во строк , какой быстрее запрос будет ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 14:46 |
|
Простой составной индекс
|
|||
---|---|---|---|
#18+
VladimirMA, Можете сравнить планы, количество логических чтений на этапе выполнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 14:48 |
|
Простой составной индекс
|
|||
---|---|---|---|
#18+
AmKad VladimirMA, Можете сравнить планы, количество логических чтений на этапе выполнения. Собственно с этого началось у меня range scan на обоих, все похоже, но у меня короткая мелкая база. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 14:53 |
|
Простой составной индекс
|
|||
---|---|---|---|
#18+
в такой постановке незначительно быстрее будет 2й вариант, так как не будет лишних проверок. но вообще это разные запросы, и в ситуациях когда and a.c = t2 таки будет что-то отфильтровывать ситуация поменяется. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 14:55 |
|
Простой составной индекс
|
|||
---|---|---|---|
#18+
VladimirMA но у меня короткая мелкая база. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 14:56 |
|
Простой составной индекс
|
|||
---|---|---|---|
#18+
VladimirMA, какой смысл сравнивать производительность логически неэквивалентных запросов? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 14:57 |
|
Простой составной индекс
|
|||
---|---|---|---|
#18+
Melkomyagkii_newbi в такой постановке незначительно быстрее будет 2й вариант, так как не будет лишних проверок. но вообще это разные запросы, и в ситуациях когда and a.c = t2 таки будет что-то отфильтровывать ситуация поменяется. Вроде да но на прод базе большой и толстой запрос включающий все поля быстрее (не верить коллеге я не могу ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 14:58 |
|
Простой составной индекс
|
|||
---|---|---|---|
#18+
кит северных морей VladimirMA, какой смысл сравнивать производительность логически неэквивалентных запросов? Запросы возвращают одни и те же результаты (есть некая зависимость a от b) Что нас остановит от сравнения ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 15:01 |
|
Простой составной индекс
|
|||
---|---|---|---|
#18+
VladimirMA Melkomyagkii_newbi в такой постановке незначительно быстрее будет 2й вариант, так как не будет лишних проверок. но вообще это разные запросы, и в ситуациях когда and a.c = t2 таки будет что-то отфильтровывать ситуация поменяется. Вроде да но на прод базе большой и толстой запрос включающий все поля быстрее (не верить коллеге я не могу ))) пусть трассировки соберет. может у него там из-за нагрузки или вымывания из кеша время выполнения скачет. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 15:28 |
|
Простой составной индекс
|
|||
---|---|---|---|
#18+
VladimirMA д базе большой и толстой запрос включающий все поля быстрее (не верить коллеге я не могу ))) Melkomyagkii_newbi в такой постановке незначительно быстрее будет 2й вариант, так как не будет лишних проверок. Легко формируется контрпример. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 15:55 |
|
Простой составной индекс
|
|||
---|---|---|---|
#18+
VladimirMA зависимость a от b ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 15:57 |
|
Простой составной индекс
|
|||
---|---|---|---|
#18+
andrey_anonymous VladimirMA д базе большой и толстой запрос включающий все поля быстрее (не верить коллеге я не могу ))) Melkomyagkii_newbi в такой постановке незначительно быстрее будет 2й вариант, так как не будет лишних проверок. Легко формируется контрпример. сформируйте, если не затруднит ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 16:02 |
|
Простой составной индекс
|
|||
---|---|---|---|
#18+
Melkomyagkii_newbi andrey_anonymous пропущено... пропущено... Легко формируется контрпример. сформируйте, если не затруднит атрибут с nullable, 98% записей с is null ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 16:04 |
|
Простой составной индекс
|
|||
---|---|---|---|
#18+
andrey_anonymous Melkomyagkii_newbi пропущено... сформируйте, если не затруднит атрибут с nullable, 98% записей с is null какая разница если по индексу по конкретному значению вернулись одни и те же строки? Тут при рендж скане может быть только больше прочитанных блоков, если индекс шире(меньше строк в блок индекса влезло) + больше сравнений. Как может быть меньше - не понимаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 16:20 |
|
Простой составной индекс
|
|||
---|---|---|---|
#18+
кит северных морей VladimirMA зависимость a от b Да конечно ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 16:36 |
|
Простой составной индекс
|
|||
---|---|---|---|
#18+
Melkomyagkii_newbi andrey_anonymous пропущено... атрибут с nullable, 98% записей с is null какая разница если по индексу по конкретному значению вернулись одни и те же строки? Тут при рендж скане может быть только больше прочитанных блоков, если индекс шире(меньше строк в блок индекса влезло) + больше сравнений. Как может быть меньше - не понимаю. ++ вот у меня такое же представление, думал может что то забыл/не знал ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 16:38 |
|
Простой составной индекс
|
|||
---|---|---|---|
#18+
Melkomyagkii_newbi VladimirMA пропущено... Вроде да но на прод базе большой и толстой запрос включающий все поля быстрее (не верить коллеге я не могу ))) пусть трассировки соберет. может у него там из-за нагрузки или вымывания из кеша время выполнения скачет. Да уж Похоже надо собирать как то доказательства аккуратно ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 16:42 |
|
Простой составной индекс
|
|||
---|---|---|---|
#18+
Melkomyagkii_newbi andrey_anonymous пропущено... атрибут с nullable, 98% записей с is null какая разница если по индексу по конкретному значению вернулись одни и те же строки? Этого не было сказано. Сказано - то же количество. Да и "остальные" могли быть отфильтрованы иными предикатами. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 16:53 |
|
Простой составной индекс
|
|||
---|---|---|---|
#18+
andrey_anonymous, я так понимаю для всех строк с a.b = t1 a.c обязательно всегда равно t2 (как условие гарантируется другой вопрос) доступ по INDEX RANGE SCAN и как-бы второй запрос кажется быстрее за счет меньшого числа сравнений ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 17:24 |
|
Простой составной индекс
|
|||
---|---|---|---|
#18+
если эти запросы эквивалентны из-за строгой корреляции С от B и это никогда не поменяется и индекс будет использоваться только этот составной, то в принципе VladimirMA a.b = t1 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 17:34 |
|
Простой составной индекс
|
|||
---|---|---|---|
#18+
andrey_anonymous Melkomyagkii_newbi пропущено... какая разница если по индексу по конкретному значению вернулись одни и те же строки? Этого не было сказано. Сказано - то же количество. Да и "остальные" могли быть отфильтрованы иными предикатами. не было, но надо полагать что t1 одинаков для сравнительных запусков. и тогда одинаковое количество означает, что and a.c = t2 ничего не отсеивает. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2020, 18:30 |
|
|
start [/forum/topic.php?fid=52&fpage=36&tid=1880876]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 310ms |
total: | 442ms |
0 / 0 |