Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Какой вариант запроса быстрее отработает?  [new]
Naile
Member

Откуда: Latvija
Сообщений: 145
Для отчета собираю данные из трех основных таблиц. Вернее из четырех - у всех трех таблиц есть одна общая. А именно - таблица с платежами, и три таблицы (для каждого банка своя) с запросами по платежам. В каждой из таблиц есть поле - payment_id, которое является первичным ключом для таблицы с платежами. Данные выдаются с фильтрацией по дате (поле из банковских таблиц) и отсортированные по payment_id. Также в каждой из 3-х таблиц есть одинаковое поле, по которому идет связь с таблицей пользователей, из которой идет связь еще с парой таблиц.

Какой вариант будет работать быстрее?

1. Создается временная таблица, куда по очереди скидываются данные из трех таблиц с INNER JOIN с платежной таблицей, т.е. 3 SELECT'а.
2. Все данные выбираются в одном SELECT, для всех 3-х таблиц используется LEFT JOIN. А также LEFT JOIN будет использоваться соответственно для связи с таблицей пользователей и с последующими таблицами.
10 ноя 09, 10:42    [7906077]     Ответить | Цитировать Сообщить модератору
 Re: Какой вариант запроса быстрее отработает?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Naile


Какой вариант будет работать быстрее?

1. Создается временная таблица, куда по очереди скидываются данные из трех таблиц с INNER JOIN с платежной таблицей, т.е. 3 SELECT'а.
2. Все данные выбираются в одном SELECT, для всех 3-х таблиц используется LEFT JOIN. А также LEFT JOIN будет использоваться соответственно для связи с таблицей пользователей и с последующими таблицами.

Чего уж проще выполнить оба варинта и сравнить ?
10 ноя 09, 10:44    [7906095]     Ответить | Цитировать Сообщить модератору
 Re: Какой вариант запроса быстрее отработает?  [new]
aleks2
Guest
Naile,

В общем случае - первый.
В конкретном случае - как напишете.
10 ноя 09, 11:02    [7906235]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить