powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Какая разница в производительности?
12 сообщений из 12, страница 1 из 1
Какая разница в производительности?
    #32028106
Underking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая разница в производительности между этими запросами?

SELECT table1.Name1, table1.Name2, sum(table2.Price)
FROM table1 INNER JOIM table2 on table1.Name2=table2.Name2
GROUP BY table1.Name1, Table2.Name2

SELECT table1.Name1, Table1.Name2, sel_table.Summa
FROM table1 INNER JOIN
(SELECT Name2, sum(Price) AS Summa FROM table2 GROUP BY Name2) AS sel_table
ON table1.Name2=sel_table.Name2
...
Рейтинг: 0 / 0
Какая разница в производительности?
    #32028125
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так загляни в план выполнения запроса - и увидишь. А план выполнения строится оптимизатором не только по синтаксису запроса, но и с учетом статистик по индексам. Врядли в данном случае можно сказать, какой из синтаксисов сгенерит гарантированно более оптимальный план выполнения запроса (IMHO).
...
Рейтинг: 0 / 0
Какая разница в производительности?
    #32028127
Underking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже я этим не пользовался, что есть план выполнения запроса?

Собственно говоря меня интересует одна вещь, не является ли второй запрос "кривым", т.е. будет ли он выполняться примерно столько же времени, сколько и первый, причем как для маленьких таблиц, так и для огромных? Не будет ли он на порядок медленней работать?
Просто мне сказали, что по всем правилам надо писать именно первый вариант. Второй вариант - это не правильно, и он будет выполняться ЗНАЧИТЕЛЬНО дольше первого варианта.
...
Рейтинг: 0 / 0
Какая разница в производительности?
    #32028135
sysop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Вы, как я понял, хотите получить вторым запросом обновляемый набор данных?
...
Рейтинг: 0 / 0
Какая разница в производительности?
    #32028144
Underking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, обновляемый набор данных меня не интересует.
Просто когда у меня есть уже какой-то запрос, в случае его доработки ему легче подключить SELECT (как во втором варианте), а не дорабатывать до первого варианта.
В частности мне понадобилось добавить эту самую сумму. До этого основной запрос даже не имел ни одного GROUP BY, а пришлось добавить их штук 15, да еще и условие кое-какое. На пустой базе проблематично оценить скорость.
Маня интересует, как следует поступать в моем случае? Можно ли считать корректным добавление простого подзапроса?
...
Рейтинг: 0 / 0
Какая разница в производительности?
    #32028152
Dankov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разница таки есть, но отнюдь не в производительности. Если в таблице Table1 поле Name2 неуникально, то запросы будут давать разные результаты.
По производительноси запросы примерно одинаковы.
...
Рейтинг: 0 / 0
Какая разница в производительности?
    #32028157
Underking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В моем случае Name2 уникально, но мы допустим что оба эти запроса работают правильно, т.е. возвращают что надо. В данный момент вопрос стоит в производительности и "корявости". В одном из форумов мне сказали, что подзапрос будет работать медленней. У меня много таблиц, в запросе их подключается по несколько штук, записей в таблицах планируется сотни тысяч. Меня интересует производительность исходя из этих условий. Набить базу данными сейчас проблематично, т.к. это понадобятся не случайные данные, поэтому пытаюсь выяснить теоретически.
Если запрос второго типа будет работать раза в два медленней, это вообщем допустимо. Но если разница будет больше, будет неприятно.
...
Рейтинг: 0 / 0
Какая разница в производительности?
    #32028181
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Какая разница в производительности?
    #32028184
Dankov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При уникальном Name2 два этих запроса эквивалентны и производительность различаться не будет (на MSSQL), так это есть на самом деле одно и тоже, а планы запросов будут очень близки.
...
Рейтинг: 0 / 0
Какая разница в производительности?
    #32028194
Underking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объясните кто-нибудь, что такое "план запросв" и как его посмотреть.
...
Рейтинг: 0 / 0
Какая разница в производительности?
    #32028197
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viewing the Query Execution Plan
If there is no query in the query panel, open a saved query or create a new query.

On the Query menu, click Show Execution Plan or press CTRL+K to turn it on.

Note This option works only when connected to an instance of Microsoft® SQL Server™ version 7.0 or later.

Execute the query by pressing F5, or on the Query menu, click Query Execute.

Position the cursor over graphical elements to reveal additional execution plan information.
...
Рейтинг: 0 / 0
Какая разница в производительности?
    #32028206
Underking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нет ли где описания этого плана запроса, чтоб по русски расписали, что где и к чему?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Какая разница в производительности?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]