|
|
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
Мы таки переезжаем... И возник вопрос. На что стоит обратить внимание при переписывании хранимых процедур? Какие трюки прекрасно работавшие в 12.5 не будут в 15? Где могут появится тормоза. Вопрос не столько по администрированию, сколько по SQL-писанию... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 20:34 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
Косяки могут появиться где угодно. У нас, например, на запросах с большим количеством джойнов, где просто надо использовать "нестед луп", ASE 15 делал кучу времянак и пытался сделать "мердж джойны". И вообще он(ASE 15) очень любит "мердж джойны", пихает их, где надо и где не надо! У нас корректировки подверглись примерно 5-10% процедур. В основном обошлись установкой внутри процедуры оптголов(типа "set basic_optimization on"). Но в некоторых процедурах пришлось, и абстрактный план из ASE 12.5 подсовывать. P.S. Многие тяжелые запросы на ASE 15 стали просто летать!!! Это с лихвой окупило весь негатив во время перехода! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 20:59 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
White Owl wrote: > И возник вопрос. На что стоит обратить внимание при переписывании > хранимых процедур? Какие трюки прекрасно работавшие в 12.5 не будут в > 15? Где могут появится тормоза. Там новый оптимизатор и процессор запросов. Новые стратегии выполнения запросов. (кажется) Новая статистика. Точно новая форма показа планов запросов. В общем, всё новое. Так что впереди у тебя весёлые времена. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 21:35 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 21:38 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
MasterZivНу, надо сказать, немного. Может помогло то, что почти все процедуры писались с хинтами("hint index" и "forceplan")! MasterZivА за счёт чего ? Стыдно признаться, но не знаю! Мы не разбирались с планами процедур, которые работали быстрей чем в 12.5.(не до этого было). Завтра попробую разобрать план одной! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 22:29 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
Я вот только неделю назад на 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 денег ни на что не дают... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 00:01 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 11:10 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
Zhora пишет: > работать CRW 8.5 (получаем ".. no items found..." после "connection Погоди, CRW - это что ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 11:11 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
Crystal Report Writer ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 18:11 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
Zhora пишет: > Crystal Report Writer А, ну я так и думал. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2009, 18:20 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
Возвращаясь к теме, рекомендую почитать это: The Official New Features Guide To Sybase ASE 15 на торентах есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2009, 01:48 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
cherrex_DenУ нас, например, на запросах с большим количеством джойнов, где просто надо использовать "нестед луп", ASE 15 делал кучу времянак и пытался сделать "мердж джойны". И вообще он(ASE 15) очень любит "мердж джойны", пихает их, где надо и где не надо! У нас корректировки подверглись примерно 5-10% процедур. В основном обошлись установкой внутри процедуры оптголов(типа "set basic_optimization on"). Но в некоторых процедурах пришлось, и абстрактный план из ASE 12.5 подсовывать.Вот как раз на это напоролся вчера. Запрос ранее выполнявшийся в 12.5 за пять секунд обдумывался 15-ой четыре с половиной часа. В запросе было соединение семи не маленьких таблиц. Переписал его в итоге на join синтакс. Было: Код: plaintext Код: plaintext 15-ка тоже начала летать. Пробовал играться с опциями оптимизатора, но решил что это не совсем правильное дело, потому что код с этими опциями не сможет жить на 12.5, а оно у меня пока еще в работе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 18:44 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
White Owl, Странно, но синтаксис не должен влиять на оптимизатор. P.S. Когда мне нужна была совместимость и 12.5 и в 15, я подсовывал в 15 абстрактный план(АП) 12.5. Верней писал АП в 12.5(это не на что не влияло), а потом переносил все в 15. Но это муторно! /topic/631265&hl=#6724359 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 20:35 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
cherrex_DenСтранно, но синтаксис не должен влиять на оптимизатор.Должен или не должен это другой вопрос. Факт тот что нахождение условия в where или в from очень даже влияет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 20:49 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
White Owlcherrex_DenСтранно, но синтаксис не должен влиять на оптимизатор.Должен или не должен это другой вопрос. Факт тот что нахождение условия в where или в from очень даже влияет :) А как это влияет? Я всю жизнь думал что это просто два разных способа написания джойнов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 20:57 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
cherrex_Den пишет: > А как это влияет? Я всю жизнь думал что это просто два разных способа > написания джойнов. + 100. Не должно влиять. Но видимо случайно влияет. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 22:31 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
/me думает: мне так обЪясняли... _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 23:14 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. И вот еще! два вроде бы одинаковых селекта, количество строк возвращают разное! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2009, 01:20 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2009, 11:28 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
cherrex_DenИ вот еще! два вроде бы одинаковых селекта, количество строк возвращают разное! Это не два одинаковых селекта, это два очень разных селекта. Ты путаешь право и лево :) В FROM t1 left/right JOIN t2 - слева (то есть не требует соответствующей записи из присоединяемой таблицы) всегда то, что находится раньше в списке from. Положение операндов по отношению к знаку равенства в условии ON не важно. То есть t1 будет слева от t2. А в *= и =* не будет требовать соответствия то что находится со стороны звездочки. Тут положение операндов важно. Иными словами, для Код: plaintext 1. 2. 3. Код: plaintext 1. 2. А для Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2009, 18:19 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
MasterZivА в TSQL-join условие когда проверяется условие AND b.data2 = 'test21' -- не определено.Как раз нет! Очень даже четко определено. Если оно в WHERE - то будет проверяться после, а если в JOIN ON - то до. Точно как в стандартах описано :) И ANSI-, и Transact- и WatcomSQL все действуют именно так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2009, 18:26 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
White Owl пишет: > Автор: "White Owl" > cherrex_Den > И вот еще! два вроде бы одинаковых селекта, количество строк возвращают > разное! > > Это не два одинаковых селекта, это два очень разных селекта. Ты путаешь > право и лево :) Да нет, слева будет то же самое, что и справа ... :-))) Не, может будет-то другое, но если даже не перепутать по семантике *= и =* и LEFT JOIN и RIGHT JOIN, запросы всё равно будут РАЗНЫЕ. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2009, 19:28 |
|
||
|
Переходим с ASE 12.5 на ASE 15.0.
|
|||
|---|---|---|---|
|
#18+
White Owl пишет: > Как раз нет! Очень даже четко определено. Если оно в WHERE - то будет > проверяться после, а если в JOIN ON - то до. Точно как в стандартах > описано :) Это оно в ANSI-синтаксисе определено. Которые LEFT/RIGHT/OUTER JOIN. А в Transact SQL outer join, которые *= или =* -- нет. Ты наверное названия перепутал. Так их назвают в документации, не только Sybase-овской, но и в Sybase-овской кажется тоже так же. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2009, 19:30 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=35815391&tid=2011113]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
145ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 257ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...