Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
26.04.2016, 20:21
|
|||
---|---|---|---|
|
|||
какой запрос легче? |
|||
#18+
Есть две таблицы, Заказчики и Заказы, приблизительно такие: TB_CUSTOMERS: (CUST_ID, NAME...) TB_ORDERS: (ORDER_NUM, CUST_ID....) И есть два способа реализовать одну и ту же выборку: А) SELECT O.NUM, C.NAME FROM TB_ORDERS O JOIN TB_CUSTOMERS C ON O.CUST_ID=C.CUST_ID Б) Процедура Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Одинаковы ли эти способы с точки зрения производительности для сервера? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.04.2016, 20:26
|
|||
---|---|---|---|
какой запрос легче? |
|||
#18+
Глупость спрошу, но планы запросов какие? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.04.2016, 21:31
|
|||
---|---|---|---|
|
|||
какой запрос легче? |
|||
#18+
в планах я не силён... но будем считать, что все поля, которые участвуют в where/join индексированы и сервер с планом не ошибётся p.s. на всяк.случай - fb 2.5 3й диалект ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.04.2016, 23:01
|
|||
---|---|---|---|
|
|||
какой запрос легче? |
|||
#18+
tantico2> все поля, которые участвуют в where/join индексированы tantico2> p.s. на всяк.случай - fb 2.5 3й диалект Нет, не одинаковы. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2016, 07:16
|
|||
---|---|---|---|
|
|||
какой запрос легче? |
|||
#18+
tantico2в планах я не силён. Планы показывает IBExpert при выполнении (F9) или препарировании (Ctrl+F9) запроса в SQL-редакторе. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2016, 07:25
|
|||
---|---|---|---|
какой запрос легче? |
|||
#18+
tantico2Есть две таблицы, Заказчики и Заказы, приблизительно такие: TB_CUSTOMERS: (CUST_ID, NAME...) TB_ORDERS: (ORDER_NUM, CUST_ID....) И есть два способа реализовать одну и ту же выборку: А) SELECT O.NUM, C.NAME FROM TB_ORDERS O JOIN TB_CUSTOMERS C ON O.CUST_ID=C.CUST_ID Б) Процедура Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Одинаковы ли эти способы с точки зрения производительности для сервера? нет. абсолютно разные. несопоставимые. запросы, естественно, надо делать по плану А). второе. - это вообще не запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2016, 07:30
|
|||
---|---|---|---|
|
|||
какой запрос легче? |
|||
#18+
tantico2, а хз, мерить надо. В данном случае запрос должен быть эффективней. Запрос может соединять таблицы не в том порядке который у тебя в процедуре. Учитывая что кардинальность TB_CUSTOMERS обычно меньше TB_ORDERS, то скорее всего порядок будет обратный. Для начала почитай http://www.ibase.ru/dataaccesspaths/ ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2016, 17:15
|
|||
---|---|---|---|
|
|||
какой запрос легче? |
|||
#18+
Симонов ДенисДля начала почитай http://www.ibase.ru/dataaccesspaths/ Спасибо, буду смотреть. miwaonlineПланы показывает IBExpert Знаю. Просто я думал, что сервер всегда выдаёт одинаковую реакцию на одинаково написанные запросы с одинаковыми индексами. Т.е. вариант А в любых базах, с любыми данными всегда будет выполняться одним и тем же способом. А вариант Б - своим, но тоже единственным. Но вот товарищи подсказывают, что сервер что-то ещё принимает во внимание и его реакция, напр, на вар.А может оказаться разной в разных ситуациях. Я правильно понимаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2016, 17:43
|
|||
---|---|---|---|
|
|||
какой запрос легче? |
|||
#18+
tantico2Просто я думал, что сервер всегда выдаёт одинаковую реакцию на одинаково написанные запросы с одинаковыми индексами. Т.е. вариант А в любых базах, с любыми данными всегда будет выполняться одним и тем же способом. А вариант Б - своим, но тоже единственным. Но вот товарищи подсказывают, что сервер что-то ещё принимает во внимание и его реакция, напр, на вар.А может оказаться разной в разных ситуациях. Я правильно понимаю? Кроме запросов и индексов есть еще и сами данные, как ни странно. Соответственно, на разных данных индексы будут разные со всеми вытекающими. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2016, 19:06
|
|||
---|---|---|---|
какой запрос легче? |
|||
#18+
tantico2, даже в столь примитивной схеме может быть - много заказчиков, делающих редкие заказы - мало заказчиков, делающих дофигища заказов. Уже в этих условиях для обычного join сервер будет генерить разный план запроса. Твой for select - это программерская привычка к циклам, которая железобетонно определит порядок обращения к таблицам, независимо от их содержимого. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=40&tablet=1&tid=1562198]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 281ms |
total: | 409ms |
0 / 0 |