powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Кривой план запроса SQL. Можно ли исправить?
4 сообщений из 29, страница 2 из 2
Кривой план запроса SQL. Можно ли исправить?
    #40072830
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
разумеется эксплойт, поскольку это манипуляция с механизмом формирования плана
Т.е. любое переписывание запроса без влияния на конечный результат - есть эксплойт?
Владислав Колосов
Поведение это не инвариантно, оно зависит от типа и версии SQL сервера.
Продемонстрируйте примером (или, хотя-бы, объяснением), когда поведение данного запроса с top () не будет инвариантным.
...
Рейтинг: 0 / 0
Кривой план запроса SQL. Можно ли исправить?
    #40072834
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm,

Рассуждения мои таковы... Выражение TOP() предназначено для получения заданного количества строк, но не для оказания влияния на план запроса. В этом его единственная цель. То, что сервер реагирует на TOP() таком образом, что меняется его внутренняя логика и мы используем это к своей выгоде - и есть эксплойт системы. Эксплойтом же является и поведение ORDER BY 1/0, например.
...
Рейтинг: 0 / 0
Кривой план запроса SQL. Можно ли исправить?
    #40072875
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Выражение TOP() предназначено для получения заданного количества строк, но не для оказания влияния на план запроса.
Ошибаетесь. TOP() влияет на план запроса. И это нормально.
Владислав Колосов
сервер реагирует на TOP() таком образом, что меняется его внутренняя логика
А где изменилась внутренняя логика?
...
Рейтинг: 0 / 0
Кривой план запроса SQL. Можно ли исправить?
    #40073074
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm,

это и есть эксплойт - воздействие на план запроса при помощи косвенных средств, не предназначенных для этого с целью получения выгоды. Оператор TOP() математически не предназначен для таких действий. Проталкивание предиката - эксплойт. Но хорошие специалисты знают, как воздействовать на систему недокументированными методами :)
...
Рейтинг: 0 / 0
4 сообщений из 29, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Кривой план запроса SQL. Можно ли исправить?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]