Базы данных Oracle - статьи


Анализ SQL- структуры - часть 2


  • Semantic-Based Constructs: конструкция типа подзапрос NOT IN, когда заменяется соответствующим, но не являющимся семантическим эквивалентом подзапроса NOT EXISTS, может привести к существенному повышению производительности. Однако такая замена возможна, только если в связанных (join) столбцах объединения не присутствуют NULL-значения, гарантируя, таким образом, один и тот же результат при использовании любого из этих операторов. Другой пример – замена UNION на UNION-ALL, если нет вероятности получения дублированных строк в результате.
  • Syntax-based Constructs: многие из них связаны с тем, как предикаты определены в SQL-предложении. Например, если предикат, такой как col=:bnd используется с col и :bnd, имеющих разные типы, то такой предикат не может быть использован как наездник (driver) индекса. Точно так же предикат, вовлекающий функцию или выражение (например, func(col)=:bnd, col+1=:bnd), не может быть использован как наездник индекса, если нет функционального индекса на выражение или на самое функцию.
  • Design Issue: случайное использование, например, декартового произведения (Cartesian product) является обычной проблемой, встречающейся в том случае, когда одна из таблиц не соединена ни к какой-либо другой таблице в SQL-предложении. Это может произойти, если в запросе участвует большое число таблиц.



  • Начало  Назад  Вперед



    Книжный магазин