Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Какая разница в производительности?
|
|||
|---|---|---|---|
|
#18+
Какая разница в производительности между этими запросами? 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2002, 14:08 |
|
||
|
Какая разница в производительности?
|
|||
|---|---|---|---|
|
#18+
Так загляни в план выполнения запроса - и увидишь. А план выполнения строится оптимизатором не только по синтаксису запроса, но и с учетом статистик по индексам. Врядли в данном случае можно сказать, какой из синтаксисов сгенерит гарантированно более оптимальный план выполнения запроса (IMHO). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2002, 16:00 |
|
||
|
Какая разница в производительности?
|
|||
|---|---|---|---|
|
#18+
Похоже я этим не пользовался, что есть план выполнения запроса? Собственно говоря меня интересует одна вещь, не является ли второй запрос "кривым", т.е. будет ли он выполняться примерно столько же времени, сколько и первый, причем как для маленьких таблиц, так и для огромных? Не будет ли он на порядок медленней работать? Просто мне сказали, что по всем правилам надо писать именно первый вариант. Второй вариант - это не правильно, и он будет выполняться ЗНАЧИТЕЛЬНО дольше первого варианта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2002, 16:23 |
|
||
|
Какая разница в производительности?
|
|||
|---|---|---|---|
|
#18+
А Вы, как я понял, хотите получить вторым запросом обновляемый набор данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2002, 01:25 |
|
||
|
Какая разница в производительности?
|
|||
|---|---|---|---|
|
#18+
Нет, обновляемый набор данных меня не интересует. Просто когда у меня есть уже какой-то запрос, в случае его доработки ему легче подключить SELECT (как во втором варианте), а не дорабатывать до первого варианта. В частности мне понадобилось добавить эту самую сумму. До этого основной запрос даже не имел ни одного GROUP BY, а пришлось добавить их штук 15, да еще и условие кое-какое. На пустой базе проблематично оценить скорость. Маня интересует, как следует поступать в моем случае? Можно ли считать корректным добавление простого подзапроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2002, 05:45 |
|
||
|
Какая разница в производительности?
|
|||
|---|---|---|---|
|
#18+
Разница таки есть, но отнюдь не в производительности. Если в таблице Table1 поле Name2 неуникально, то запросы будут давать разные результаты. По производительноси запросы примерно одинаковы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2002, 06:45 |
|
||
|
Какая разница в производительности?
|
|||
|---|---|---|---|
|
#18+
В моем случае Name2 уникально, но мы допустим что оба эти запроса работают правильно, т.е. возвращают что надо. В данный момент вопрос стоит в производительности и "корявости". В одном из форумов мне сказали, что подзапрос будет работать медленней. У меня много таблиц, в запросе их подключается по несколько штук, записей в таблицах планируется сотни тысяч. Меня интересует производительность исходя из этих условий. Набить базу данными сейчас проблематично, т.к. это понадобятся не случайные данные, поэтому пытаюсь выяснить теоретически. Если запрос второго типа будет работать раза в два медленней, это вообщем допустимо. Но если разница будет больше, будет неприятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2002, 07:16 |
|
||
|
Какая разница в производительности?
|
|||
|---|---|---|---|
|
#18+
Это ответит на ваш вопрос ? http://www.sql.ru/cgi-bin/UltraBoard/UltraBoard.pl?Action=ShowPost&Board=mssql&Post=5069 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2002, 09:29 |
|
||
|
Какая разница в производительности?
|
|||
|---|---|---|---|
|
#18+
При уникальном Name2 два этих запроса эквивалентны и производительность различаться не будет (на MSSQL), так это есть на самом деле одно и тоже, а планы запросов будут очень близки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2002, 09:49 |
|
||
|
Какая разница в производительности?
|
|||
|---|---|---|---|
|
#18+
Объясните кто-нибудь, что такое "план запросв" и как его посмотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2002, 10:51 |
|
||
|
Какая разница в производительности?
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2002, 11:02 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32028125&tid=1823044]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
79ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 250ms |
| total: | 435ms |

| 0 / 0 |
