powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Переходим с ASE 12.5 на ASE 15.0.
23 сообщений из 23, страница 1 из 1
Переходим с ASE 12.5 на ASE 15.0.
    #35814633
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы таки переезжаем...
И возник вопрос. На что стоит обратить внимание при переписывании хранимых процедур? Какие трюки прекрасно работавшие в 12.5 не будут в 15? Где могут появится тормоза.
Вопрос не столько по администрированию, сколько по SQL-писанию...
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35814652
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Косяки могут появиться где угодно. У нас, например, на запросах с большим количеством джойнов, где просто надо использовать "нестед луп", ASE 15 делал кучу времянак и пытался сделать "мердж джойны". И вообще он(ASE 15) очень любит "мердж джойны", пихает их, где надо и где не надо! У нас корректировки подверглись примерно 5-10% процедур. В основном обошлись установкой внутри процедуры оптголов(типа "set basic_optimization on"). Но в некоторых процедурах пришлось, и абстрактный план из ASE 12.5 подсовывать.

P.S. Многие тяжелые запросы на ASE 15 стали просто летать!!! Это с лихвой окупило весь негатив во время перехода!
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35814677
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl wrote:

> И возник вопрос. На что стоит обратить внимание при переписывании
> хранимых процедур? Какие трюки прекрасно работавшие в 12.5 не будут в
> 15? Где могут появится тормоза.

Там новый оптимизатор и процессор запросов.
Новые стратегии выполнения запросов.
(кажется) Новая статистика.
Точно новая форма показа планов запросов.

В общем, всё новое. Так что впереди у тебя весёлые времена.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35814685
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cherrex_Den wrote:

> Косяки могут появиться где угодно. У нас, например, на запросах с
> большим количеством джойнов, где просто надо использовать "нестед луп",
> ASE 15 делал кучу времянак и пытался сделать "мердж джойны". И вообще
> он(ASE 15) очень любит "мердж джойны",

Это же самое кстати было "общим местом" и в MSSQL, когда они появились
там. Он недооценивал стоимости merge-а и пихал его куда ни поподя.
Все плакали и крутили какие-то там винтики, чтобы он использовал
только старый добрый NLJ

пихает их, где надо и где не
> надо! У нас корректировки подверглись примерно 5-10% процедур. В

Ну, надо сказать, немного.

> основном обошлись установкой внутри процедуры оптголов(типа "set
> basic_optimization on").

Ну вот, винтик есть. Это хорошо.

> P.S. Многие тяжелые запросы на ASE 15 стали просто летать!!! Это с
> лихвой окупило весь негатив во время перехода!

А за счёт чего ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35814743
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivНу, надо сказать, немного.
Может помогло то, что почти все процедуры писались с хинтами("hint index" и "forceplan")!

MasterZivА за счёт чего ?

Стыдно признаться, но не знаю! Мы не разбирались с планами процедур, которые работали быстрей чем в 12.5.(не до этого было). Завтра попробую разобрать план одной!
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35814844
Фотография Zhora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот только неделю назад на QA сервере сделал upgrade: 12.0.0.8->12.5.4->15.0.3->15.0.2->15.0.2ESD#6. Пока только вроде наша марджин система работает медленнее против ASE 15.0.2. Пришлось и DBArtisan 7.3.1 upgrade -> 8.5.5 тк многое стало работать неверно. С 15.02 (ESD#16,#17) ODBC (SYBDRVODB не использует OC libs) перестал работать CRW 8.5 (получаем ".. no items found..." после "connection succeded" в designer и empty screen ("User canceled" ) во viewer. Sybase говорит что c CRW 10 все нормально а такого старья (CRW 8.5) они не держат, хотя через 12.5.1 SYODASE (использует OC libs) CRW 8.5->ASE 15.0.2 все нормально.

Может кто знает как исправить, уже все aнглоязычные форумы облазил ?
Видно придется делать CRW upgrade -> X1, 12, а там потянется: VB6 перестанет работать с новым CRW, -> VB.NET->Vb2008, a денег ни на что не дают...
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35815382
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zhora пишет:

.. С
> 15.02 (ESD#16,#17) ODBC (SYBDRVODB не использует OC libs)

Да вроде бы уже с 12.5 или чуть ли не с 12.0 OCS не используется
ODBC-ями ...

> работать CRW 8.5 (получаем ".. no items found..." после "connection
> succeded" в designer и empty screen ("User canceled" ) во viewer.

Выбросте эту гадость. Я после того, как они залегасили старый API,
который мы уже лет 10 используем, вообще про них слышать не хочу.
И до этого-то столько натерпелись от них ...

Sybase
> говорит что c CRW 10 все нормально а такого старья (CRW 8.5) они не
> держат, хотя через 12.5.1 SYODASE (использует OC libs) CRW 8.5->ASE
> 15.0.2 все нормально.

У нас сейчас 9-ый кажется.
Это в дизайн-тайме ? no items found ?
а вы его не хакали, чтобы нормально списки объектов возвращал ?

> Может кто знает как исправить, уже все aнглоязычные форумы облазил ?

А подробнее можно ? я что-то не понял.
Лучше наверное в отдельной ветке.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35815391
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zhora пишет:

> работать CRW 8.5 (получаем ".. no items found..." после "connection
Погоди, CRW - это что ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35816920
Фотография Zhora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crystal Report Writer
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35816954
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zhora пишет:
> Crystal Report Writer
А, ну я так и думал.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35817348
rcryo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возвращаясь к теме, рекомендую почитать это:
The Official New Features Guide To Sybase ASE 15
на торентах есть.
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35894808
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cherrex_DenУ нас, например, на запросах с большим количеством джойнов, где просто надо использовать "нестед луп", ASE 15 делал кучу времянак и пытался сделать "мердж джойны". И вообще он(ASE 15) очень любит "мердж джойны", пихает их, где надо и где не надо! У нас корректировки подверглись примерно 5-10% процедур. В основном обошлись установкой внутри процедуры оптголов(типа "set basic_optimization on"). Но в некоторых процедурах пришлось, и абстрактный план из ASE 12.5 подсовывать.Вот как раз на это напоролся вчера.
Запрос ранее выполнявшийся в 12.5 за пять секунд обдумывался 15-ой четыре с половиной часа.
В запросе было соединение семи не маленьких таблиц. Переписал его в итоге на join синтакс.
Было:
Код: plaintext
select ... from table1, table2 where table1.f1=table2.f1
Стало:
Код: plaintext
select ... from table1 join table2 on table1.f1=table2.f1
Постарался перетащить как можно больше условий из where в from.
15-ка тоже начала летать.
Пробовал играться с опциями оптимизатора, но решил что это не совсем правильное дело, потому что код с этими опциями не сможет жить на 12.5, а оно у меня пока еще в работе.
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35894990
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl,

Странно, но синтаксис не должен влиять на оптимизатор.

P.S. Когда мне нужна была совместимость и 12.5 и в 15, я подсовывал в 15 абстрактный план(АП) 12.5. Верней писал АП в 12.5(это не на что не влияло), а потом переносил все в 15. Но это муторно! /topic/631265&hl=#6724359
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35894999
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cherrex_DenСтранно, но синтаксис не должен влиять на оптимизатор.Должен или не должен это другой вопрос. Факт тот что нахождение условия в where или в from очень даже влияет :)
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35895008
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owlcherrex_DenСтранно, но синтаксис не должен влиять на оптимизатор.Должен или не должен это другой вопрос. Факт тот что нахождение условия в where или в from очень даже влияет :)

А как это влияет? Я всю жизнь думал что это просто два разных способа написания джойнов.
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35895118
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cherrex_Den пишет:

> А как это влияет? Я всю жизнь думал что это просто два разных способа
> написания джойнов.

+ 100. Не должно влиять. Но видимо случайно влияет.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35895174
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/me думает: мне так обЪясняли...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35895274
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
create table #t1(t1id int primary key, data varchar( 20 ) not null)
create table #t2(t2id int primary key, t1id int not null, data2 varchar( 20 ) not null)



insert into #t1(t1id,data) values( 1 ,'test')
insert into #t1(t1id,data) values( 2 ,'test2')

insert into #t2(t2id,t1id,data2) values( 1 , 1 ,'test21')
insert into #t2(t2id,t1id,data2) values( 2 , 2 ,'test22')


select * 
from #t1 a
right join #t2 b on b.t2id = a.t1id
WHERE b.data2 = 'test21'

select * 
from #t1 a, #t2 b
WHERE b.t2id =* a.t1id
AND b.data2 = 'test21'

И вот еще! два вроде бы одинаковых селекта, количество строк возвращают разное!
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35895898
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cherrex_Den wrote:

> select *
> from #t1 a
> right join #t2 b on b.t2id = a.t1id
> WHERE b.data2 = 'test21'
>
> select *
> from #t1 a, #t2 b
> WHERE b.t2id =* a.t1id
> AND b.data2 = 'test21'
>
>
> И вот еще! два вроде бы одинаковых селекта, количество строк возвращают
> разное!

Это как раз демонстрация разницы в семантике TSQL-join и ANSI-join.
В ANSI-join условие b.data2 = 'test21' явным образом проверяется до
или после JOIN-а, в данном случае - после JOIN-а.

А в TSQL-join условие когда проверяется условие
AND b.data2 = 'test21'
-- не определено. Оно может проверяться как до, так и после JOIN-а,
в зависимости от построенного плана запроса.

Напомню, что значение b.data2 до и после JOIN-а
может быть разным, поскольку JOIN внешний.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35897294
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cherrex_DenИ вот еще! два вроде бы одинаковых селекта, количество строк возвращают разное! Это не два одинаковых селекта, это два очень разных селекта. Ты путаешь право и лево :)
В FROM t1 left/right JOIN t2 - слева (то есть не требует соответствующей записи из присоединяемой таблицы) всегда то, что находится раньше в списке from. Положение операндов по отношению к знаку равенства в условии ON не важно. То есть t1 будет слева от t2.
А в *= и =* не будет требовать соответствия то что находится со стороны звездочки. Тут положение операндов важно.

Иными словами, для
Код: plaintext
1.
2.
3.
select * 
from #t1 a, #t2 b
WHERE b.t2id =* a.t1id
AND b.data2 = 'test21'
Аналогом будет
Код: plaintext
1.
2.
select * 
from #t1 a
left join #t2 b on b.t2id = a.t1id and b.data2 = 'test21'

А для
Код: plaintext
1.
2.
3.
select * 
from #t1 a
right join #t2 b on b.t2id = a.t1id
WHERE b.data2 = 'test21'
Аналогом будет
Код: plaintext
1.
2.
3.
select * 
from #t1 a, #t2 b
WHERE b.t2id *= a.t1id
AND b.data2 = 'test21'
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35897304
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivА в TSQL-join условие когда проверяется условие
AND b.data2 = 'test21'
-- не определено.Как раз нет! Очень даже четко определено. Если оно в WHERE - то будет проверяться после, а если в JOIN ON - то до. Точно как в стандартах описано :)
И ANSI-, и Transact- и WatcomSQL все действуют именно так.
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35897392
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl пишет:
> Автор: "White Owl"
> cherrex_Den
> И вот еще! два вроде бы одинаковых селекта, количество строк возвращают
> разное!
>
> Это не два одинаковых селекта, это два очень разных селекта. Ты путаешь
> право и лево :)

Да нет, слева будет то же самое, что и справа ... :-)))
Не, может будет-то другое, но если даже не перепутать по семантике
*= и =* и LEFT JOIN и RIGHT JOIN, запросы всё равно будут РАЗНЫЕ.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Переходим с ASE 12.5 на ASE 15.0.
    #35897398
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl пишет:

> Как раз нет! Очень даже четко определено. Если оно в WHERE - то будет
> проверяться после, а если в JOIN ON - то до. Точно как в стандартах
> описано :)

Это оно в ANSI-синтаксисе определено. Которые LEFT/RIGHT/OUTER JOIN.
А в Transact SQL outer join, которые *= или =* -- нет.

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


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