Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Гипотетический вопрос  [new]
Задумался
Guest
Есть таблица A со столбцами A,Q,W,E,R,T,Y и есть таблица B со столбцами R,T,Y,U,I, т. е. столбцы R,T,Y у них одинакового типа и с одинаковыми данными. Число строк в таблицах разное. Столбцы R,T,Y связаны между собой Foreign key и в таблице A индекс уникальный, а в таблице B индекс нормальный.
Пишу запрос
Select A.A, A.T, B.U, B.R
From A, B
Where A.R=B.R
and A.T = .... какое то условие.

Будет ли разница с точки зрения скорости выполнения запроса, если я вместо A.T=.... напишу B.T=... И будет ли разница если в строке Select A.A, A.T, B.U, B.R напишу Select A.A, B.T, B.U, A.R
, т. е. поменяю одну таблицу на другу так как данные одинаковые.
31 авг 07, 13:49    [4604015]     Ответить | Цитировать Сообщить модератору
 Гипотетический вопрос  [new]
OCM
Guest
Ацкий отжиг, убей себя ап стену
31 авг 07, 13:57    [4604083]     Ответить | Цитировать Сообщить модератору
 Re: Гипотетический вопрос  [new]
Elic
Member

Откуда:
Сообщений: 29991
Задумался
Будет ли разница с точки зрения скорости выполнения запроса, если я вместо A.T=.... напишу B.T=...
Главное, что результат будет одинаковым. А скорость зависит от плана. Но поскольку это условие не может быть использовано для доступа к данным, а только для фильтрации, то лучше фильтровать меньшую таблицу.
Задумался
И будет ли разница если в строке Select A.A, A.T, B.U, B.R напишу Select A.A, B.T, B.U, A.R
Не будет.
31 авг 07, 14:13    [4604234]     Ответить | Цитировать Сообщить модератору
 Re: Гипотетический вопрос  [new]
ten
Member

Откуда: Екатеринбург
Сообщений: 1672
Задумался
столбцы R,T,Y у них одинакового типа и с одинаковыми данными.
Пишу запрос
Select A.A, A.T, B.U, B.R
From A, B
Where A.R=B.R
and A.T = .... какое то условие.

Будет ли разница с точки зрения скорости выполнения запроса, если я вместо A.T=.... напишу B.T=...

Тогда уж лучше написать
Select A.A, A.T, B.U, B.R
From A, B
Where A.R=B.R
  and A.T = B.T
and A.T = .... какое то условие.
после этого совет Elic-а по фильтрации не понадобится и оптимизатор сам разберется. По крайней мере должен
31 авг 07, 14:26    [4604350]     Ответить | Цитировать Сообщить модератору
 Re: Гипотетический вопрос  [new]
Elic
Member

Откуда:
Сообщений: 29991
Elic
Задумался
Будет ли разница с точки зрения скорости выполнения запроса, если я вместо A.T=.... напишу B.T=...
Главное, что результат будет одинаковым.
Посыпаю голову пеплом :( Результаты будут совершенно разные! Условия-то соединения по этому столбцу нет (в отличие от примера ten-а).
31 авг 07, 15:35    [4605020]     Ответить | Цитировать Сообщить модератору
 Re: Гипотетический вопрос  [new]
ten
Member

Откуда: Екатеринбург
Сообщений: 1672
Elic
Посыпаю голову пеплом

Мне кажется не стоит Автор указал, что данные в этих столбцах абсолютно одинаковы.
31 авг 07, 17:56    [4606080]     Ответить | Цитировать Сообщить модератору
 Re: Гипотетический вопрос  [new]
Elic
Member

Откуда:
Сообщений: 29991
ten
Мне кажется не стоит Автор указал, что данные в этих столбцах абсолютно одинаковы.
Если автор чего-то не понимает или неумеет изъясняться, это ещё не повод для других тупить :) "Абсолютная одинаковость" - это когда (select count(*) from a) = 0
Тебе стоит хорошенько подумать. Представь, что R - это OWNER, а T - это OBJECT_NAME, и соедени DBA_OBJECTS и DBA_SOURCE обоими вариантами.
31 авг 07, 18:24    [4606251]     Ответить | Цитировать Сообщить модератору
 Re: Гипотетический вопрос  [new]
ten
Member

Откуда: Екатеринбург
Сообщений: 1672
OFFTOP
Я не пытаюсь фантазировать (по крайней мере стараюсь не фантазировать).Если автор сказал, что одинаково, значит от этого и будем танцевать.
END OF OFFTOP
31 авг 07, 18:34    [4606297]     Ответить | Цитировать Сообщить модератору
 Re: Гипотетический вопрос  [new]
Elic
Member

Откуда:
Сообщений: 29991
ten
значит от этого и будем танцевать.
А здравого смысла на плечах нет?
31 авг 07, 18:36    [4606306]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить