|
Кривой план запроса SQL. Можно ли исправить?
|
|||
---|---|---|---|
#18+
Владислав Колосов разумеется эксплойт, поскольку это манипуляция с механизмом формирования плана Владислав Колосов Поведение это не инвариантно, оно зависит от типа и версии SQL сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2021, 17:51 |
|
Кривой план запроса SQL. Можно ли исправить?
|
|||
---|---|---|---|
#18+
invm, Рассуждения мои таковы... Выражение TOP() предназначено для получения заданного количества строк, но не для оказания влияния на план запроса. В этом его единственная цель. То, что сервер реагирует на TOP() таком образом, что меняется его внутренняя логика и мы используем это к своей выгоде - и есть эксплойт системы. Эксплойтом же является и поведение ORDER BY 1/0, например. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2021, 18:07 |
|
Кривой план запроса SQL. Можно ли исправить?
|
|||
---|---|---|---|
#18+
Владислав Колосов Выражение TOP() предназначено для получения заданного количества строк, но не для оказания влияния на план запроса. Владислав Колосов сервер реагирует на TOP() таком образом, что меняется его внутренняя логика ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2021, 19:37 |
|
Кривой план запроса SQL. Можно ли исправить?
|
|||
---|---|---|---|
#18+
invm, это и есть эксплойт - воздействие на план запроса при помощи косвенных средств, не предназначенных для этого с целью получения выгоды. Оператор TOP() математически не предназначен для таких действий. Проталкивание предиката - эксплойт. Но хорошие специалисты знают, как воздействовать на систему недокументированными методами :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 12:31 |
|
|
start [/forum/topic.php?fid=46&gotonew=1&tid=1684675]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
142ms |
get topic data: |
10ms |
get first new msg: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 318ms |
total: | 548ms |
0 / 0 |