powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE: что быстрее T-SQL или ANSI
10 сообщений из 10, страница 1 из 1
ASE: что быстрее T-SQL или ANSI
    #36265681
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, такой вопрос - кто-нибудь сталкивался с зависимостью производительности от стандарта кодирования - старый SQL (когда таблицы после from через запятую перечислялись, а условия из соединения были в where) против ANSI (джойны отдельно от where).

Слышал, что ANSI в каких-то случаях может давать значительный выигрыш в производительности по сравнению со старым синтаксисом для совершенно идентичных запросов.

Ничего вразумительного в google найти не удалось.

Помогите понять, как может производительность зависеть от нотации и тоже, такая зависимость это норма или просто багафича известная продвинутым в оптимизации спецам?


Заранее спасибо
...
Рейтинг: 0 / 0
ASE: что быстрее T-SQL или ANSI
    #36266580
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
когда таблицы через запятую то это тоже самое что и inner join.
Напишите два эквивалентных запроса и посмотрите на их планы.
Запрос c join легче читать и понимать.
...
Рейтинг: 0 / 0
ASE: что быстрее T-SQL или ANSI
    #36267325
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kru wrote:

Господа, такой вопрос - кто-нибудь сталкивался с зависимостью
> производительности от стандарта кодирования - старый SQL (когда таблицы
> после from через запятую перечислялись, а условия из соединения были в
> where) против ANSI (джойны отдельно от where).

Производительность от этого напрямую не зависит.

Очень слабо оно зависит опосредовано, за счёт того, что сервак
может строить по-разному планы, но при этом, как мы наблюдали,
нет никакого отклонения в лучшую или худшую сторону.
Т.е. где -то -- старые глюки -- по-старому работает хуже.
Где-то новые глюки -- по- новому работает хуже.

>
> Слышал, что ANSI в каких-то случаях может давать значительный выигрыш в
> производительности по сравнению со старым синтаксисом для совершенно
> идентичных запросов.

Скорее всего, либо вообще туфта, либо какой-то частный случай,
и из него делается общий вывод.



Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ASE: что быстрее T-SQL или ANSI
    #36267817
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kruкто-нибудь сталкивался с зависимостью производительности от стандарта кодирования - старый SQL (когда таблицы после from через запятую перечислялись, а условия из соединения были в where) против ANSI (джойны отдельно от where).Да, я сталкивался.
В нормальных серверах от синтаксиса скорость работы обычно не зависит. Однако баги и особенности в парсерах-оптимизаторах могут вносить различия в план запроса в зависимости от его синтаксиса. Это нигде не документируется потому что это все эти различия идут из области багов и странностей кодирования парсеров и естественно могут меняться от EBF к EBF'у.

KruСлышал, что ANSI в каких-то случаях может давать значительный выигрыш в производительности по сравнению со старым синтаксисом для совершенно идентичных запросов.По идее, фильтрация участвующих в запросе таблиц при ANSI join происходит до фактического соединения таблиц поэтому в общем запрос получается быстрее.

Этот подход вполне успешно работает на микро-базах, тот же SQLite например или ODBC драйвера для xBase баз.
Синтаксис не должен влиять на производительность в ASE.
А например в SA, начиная с девятой версии напрямую заявляется что весь *= синтаксис неявно превращается оптимизатором в JOIN ON синтаксис перед выполнением.
...
Рейтинг: 0 / 0
ASE: что быстрее T-SQL или ANSI
    #36268310
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl wrote:

> По идее, фильтрация участвующих в запросе таблиц при ANSI join
> происходит до фактического соединения таблиц поэтому в общем запрос
> получается быстрее.

Это ты глупость сказал. В случае обоих синтаксисов фильтрация по
конкретной таблице может происходить либо до, либо после, либо во
время соединения таблиц.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ASE: что быстрее T-SQL или ANSI
    #36269068
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv Это ты глупость сказал. В случае обоих синтаксисов фильтрация по
конкретной таблице может происходить либо до, либо после, либо во
время соединения таблиц.

а это можно контролировать, или это ответственность оптимизатора?
...
Рейтинг: 0 / 0
ASE: что быстрее T-SQL или ANSI
    #36269825
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЭто ты глупость сказал. В случае обоих синтаксисов фильтрация по
конкретной таблице может происходить либо до, либо после, либо во
время соединения таблиц.Я сказал не глупость, а "по идее". Насколько я помню, это было официальное обоснование когда вводили "JOIN ON" синтаксис.
А на практике, как я уже говорил, это происходит до сих пор на микробазах. А на ASE это может происходить в зависимости от ветра на Марсе.
Вон, весной у меня были пляски с этим бубном: http://sql.ru/forum/actualthread.aspx?tid=638860#6981134
...
Рейтинг: 0 / 0
ASE: что быстрее T-SQL или ANSI
    #36269828
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cherrex_DenMasterZiv Это ты глупость сказал. В случае обоих синтаксисов фильтрация по
конкретной таблице может происходить либо до, либо после, либо во
время соединения таблиц.а это можно контролировать, или это ответственность оптимизатора?Нет, конкретно этот пункт контролировать нельзя.
Оптимизатор можно контролировать только через посредство сохраненных планов. Но там может быть уже вообще что угодно.
...
Рейтинг: 0 / 0
ASE: что быстрее T-SQL или ANSI
    #36269867
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cherrex_Den wrote:
> а это можно контролировать, или это ответственность оптимизатора?

Ответственность оптимизатора, но можно контролировать отчасти
хинтами и абстрактными планами.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ASE: что быстрее T-SQL или ANSI
    #36269875
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl wrote:

> Я сказал не глупость, а "по идее". Насколько я помню, это было
> официальное обоснование когда вводили "JOIN ON" синтаксис.

Нет, ты перепутал немного.

Обоснование было о том, что при внешних соединениях
семантика ссылок на атрибуты внутренних таблиц во внешних
JOIN-ах не определена в варианте синтаксиса без ANSI JOIN.
А в ANSI JOIN всё предельно ясно: в JOIN ... ON это поля
ДО JOIN-а, а в where -- поля после.

Но это к порядку физического выполнения операций
напрямую не имеет отношения.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE: что быстрее T-SQL или ANSI
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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