В литературе я прочитал, что с использованием условия ИЛИ или оператора в предложении WHERE делается оператор non-sargable
. Я не знаю, почему и как это может быть правдой. Любая помощь будет оценена по достоинству.Почему «ИЛИ операция» или условие ИЛИ не могут быть отклонены?
ответ
Ответ предоставлен автором авторитетной книги по оптимизации SQL Server Query Performance Tuning, Grant Fritchey. Итак, вот оно:
«Операторы OR гораздо более оптимизированы, чем раньше, но если вы думаете об этом, если у меня есть индекс, и я хочу сопоставить значения, равные A или Z, движок должен выполнять несколько сравнений, а не просто один. Полные условия все приводят к прямому поиску точки или поиску диапазона. Таким образом, A будет ходить по дереву и извлекать одну строку или набор строк из индекса для это значение. Но если это A или R, он не может получить диапазон, он должен выполнять другие виды работы. Иногда вы увидите, что это делается как два файла с операцией JOIN. И это здорово. Посмотрим на дополнительные операции с фильтром или сканирование, так что это невозможно. (опять же, кредит принадлежит автору)
Я предлагаю вам перестать думать об этом и изучить план выполнения. Включает ли определение * nonsargable * «двигатель должен делать несколько сравнений»? –
Я не планирую стать оператором SQL Server. Я бы предпочел понять основы и концепции и стать дизайнером, в отличие от оператора/технолога. – LearnByReading
Ну, дизайнеры, как ожидается, доставляют проекты, которые хорошо работают. Вы можете посмотреть план выполнения и заметить, что запрос с использованием оператора 'или' действительно использует индекс. (Это не мое мнение, это факт.) Входит ли в определение * nonsargable * «двигатель должен делать несколько сравнений, даже если эти сравнения используют индекс»? –
- 1. почему или условие не учитывается
- 2. Почему некоторые или все ссылки личности не могут быть переведены
- 3. Почему CGlayerRef или CGcontextRef не могут быть сохранены в NSdata?
- 4. или условие, если условие
- 5. Запрос был запрещен. Ваши учетные данные могут быть отклонены или приостановлены
- 6. Sql не распознает или условие
- 7. Разделить на список строк, которые могут быть или не быть.
- 8. Обработка данных, которые могут быть или не быть обещанием
- 9. Метаданные отклонены - повторно подать или нет?
- 10. шаблон метапрограммирование ИЛИ операция
- 11. Должно быть указано условие возврата или нет?
- 12. Операция «Или» - ORMLite
- 13. NSTimer или операция приостановки?
- 14. или условие replaceAll
- 15. Python нотации или операция "**"
- 16. Подзапрос или условие не работает
- 17. cakephp ИЛИ условие не работает
- 18. ИЛИ условие не возвращающие данные
- 19. Быть или не быть: window.onload
- 20. Некоторые или все идентификационные ссылки не могут быть переведены
- 21. Java: Какие классы не могут быть преобразованы агентом или MBean?
- 22. Невозможно ИЛИ ИЛИ условие в вопросе Parse
- 23. Обновления SQLite не будут сохранены или не могут быть выполнены
- 24. шаблон не может существовать или не могут быть доступны
- 25. Частные члены не наследуются или просто не могут быть доступны?
- 26. [NSBlockOperation addExecutionBlock:]: блоки не могут быть добавлены после того, как операция начала или завершилась
- 27. Операция JOIN или другой подход
- 28. Логическая операция ИЛИ с -1
- 29. Проверка «ИЛИ» условие
- 30. Hive присоединиться ИЛИ условие
Википедия - источник ... – jarlh
Wikipedia - открытая платформа. В Википедии есть потенциал для сбора источников, но, учитывая, что так легко менять эти источники, манипулировать ими или иным образом возвращать их, это делает сборку жидкости без надзора. Поэтому я не согласен. – LearnByReading
Есть также отличные администраторы и модераторы, которые отлично справляются с управлением источниками. Но мы немного отвлечемся от темы: D Не могли бы вы рассказать мне, что означает несогласие? – Phate01