Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Странно работают коррелированные запросы в ASA 9.0.2
|
|||
|---|---|---|---|
|
#18+
Имеем ASA 9.0.2.3044 Есть 2 таблицы – операций и проводок со связью 1 ко многим : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Поскольку за период могут быть операции этого контрагента не затрагивающие интересующий нас счет их и отсекли условием : and (SUM_DB<>0 OR SUM_CR<>0) Я понимаю, что решение идеологически неправильное, но В ASA 7.xx и A8.xx все прекрасно работало. Под 9 такой запрос тормозит в сотни раз :( Стоило заменить последнее условие на Код: plaintext 1. как запрос стал летать. Вместо 15…20 минут выполняется за 2..5 секунд. В первой таблице около 50 000 строк, во второй около 160 000. В выборку попадает от 2 до 15 строк из первой таблицы и 20…30 строк из второй . Что это – глюк оптимизатора ? План запроса никаких дырок не показывает. Все таблицы сканируются по индексам (с приличной селективностью) Реальный запрос более сложный и есть необходимость строить его именно по таблице операций. И я знаю примерно 5 вариантов, как правильно его переписать :-)). Напрягает, что это уже не первая проблема с подзапросами при переходе на 9 версию :(. Что-то они все-таки намудрили с оптимизацией аггрегирующих функций :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 19:38 |
|
||
|
Странно работают коррелированные запросы в ASA 9.0.2
|
|||
|---|---|---|---|
|
#18+
Ну дык новая версия, другой принцип работы. Запросы сделаные под один оптимизатор не обязаны идеально ложиться под другой :) А вообще мне оптимизатор девятки показалась намного более умным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 20:05 |
|
||
|
Странно работают коррелированные запросы в ASA 9.0.2
|
|||
|---|---|---|---|
|
#18+
9 версия гораздо эффективнее работает с запросами по большИм объемам данных, да и не по большим тоже.! Если у вас есть проблемы с выборками на предыдущих версиях, так, что даже грамотное проектирование не помогает - то советую обратить пристальное внимание на 9-ку. Пожалеть не должны... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 22:33 |
|
||
|
Странно работают коррелированные запросы в ASA 9.0.2
|
|||
|---|---|---|---|
|
#18+
А я тоже заметил несколько странностей оптимизатора при переходе на 9-ку. Мои впечатления - в целом стало все побыстрее, но вот некоторрые весьма однозначные запросы тормозят. Приходится их перестраивать извращенным образом. Причем при смене EBF ситуация в корне менялась, одни запросы стали выполняться как и на прошлых версиях быстро, зато другие тормознули. В целом не смертельно, но неприятно. Скорее всего, как всегда, будет работать правило 3-го релиза. Надо дождаться 9.0.3, в 6-ке и 8-ке так и было :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 09:51 |
|
||
|
Странно работают коррелированные запросы в ASA 9.0.2
|
|||
|---|---|---|---|
|
#18+
White Owl А вообще мне оптимизатор девятки показалась намного более умным. То-то и оно :(. Я смотрел план запроса, крутил его и так и этак - никакой крамолы нету. Все таблтцы поднимаются по индексам, никакого fullscan. И такие тормоза в конце. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2005, 11:17 |
|
||
|
Странно работают коррелированные запросы в ASA 9.0.2
|
|||
|---|---|---|---|
|
#18+
вместо SELECT OPS.DAT, (select sum(s_p) from cor c where c.ops_id=ops.ops_id and c.db ='3611' ) as SUM_DB, (select sum(s_p) from cor c where c.ops_id=ops.ops_id and c.cr ='3611' ) as SUM_CR, (select name from cst where cst_id=350), . . . from ops where OPS.DAT between dbeg and dend ) and OPS.CST = 350 and (SUM_DB<>0 OR SUM_CR<>0) попробуй SELECT OPS.DAT, t1.SUM_DB , t2.SUM_CR, (select name from cst where cst_id=350), . . . from ops, Lateral (select sum(s_p) SUM_DB from cor c where c.ops_id=ops.ops_id and c.db ='3611' ) as t1, Lateral( select sum(s_p) SUM_CR from cor c where c.ops_id=ops.ops_id and c.cr ='3611' ) as t2 where OPS.DAT between dbeg and dend ) and OPS.CST = 350 and (SUM_DB<>0 OR SUM_CR<>0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2005, 12:31 |
|
||
|
Странно работают коррелированные запросы в ASA 9.0.2
|
|||
|---|---|---|---|
|
#18+
double_axe попробуй SELECT OPS.DAT, t1.SUM_DB , t2.SUM_CR, (select name from cst where cst_id=350), . . . from ops, Lateral (select sum(s_p) SUM_DB from cor c where c.ops_id=ops.ops_id and c.db ='3611' ) as t1, Lateral( select sum(s_p) SUM_CR from cor c where c.ops_id=ops.ops_id and c.cr ='3611' ) as t2 where OPS.DAT between dbeg and dend ) and OPS.CST = 350 and (SUM_DB<>0 OR SUM_CR<>0) С Lateral() работает. Но возникает неприятное чувство, что с вынесением вычисления агрегатных функций в отдельный блок "с целью оптимизации и ускорения" оптимизатор сильно поглупел. :( А особенно противно, что с каждой новой версиеий сервера приходится переписывать десятка по 2 запроса и ХП, т.к. обязательно что-то начинает тормозить со страшной скоростью ! Я уже не говорю о случае, когда в ASA8 для функций Months(), Days(), Seconds() и т.п. поменяли умалчиваемую начальную дату, а сообщить об этом в документации забыли. То-то весело было :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2005, 23:54 |
|
||
|
Странно работают коррелированные запросы в ASA 9.0.2
|
|||
|---|---|---|---|
|
#18+
Графический план запроса пожалуйста сохраните в ISQL и выложите сюда присоединенным файлом. P.S. ASA 9 не любит SELECT в SELECT. Лучше писать подзапросы в FROM. И подумайте насчет: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2005, 00:49 |
|
||
|
Странно работают коррелированные запросы в ASA 9.0.2
|
|||
|---|---|---|---|
|
#18+
ASCRUSГрафический план запроса пожалуйста сохраните в ISQL и выложите сюда присоединенным файлом. Завтра, если успею :( ASCRUS P.S. ASA 9 не любит SELECT в SELECT. Лучше писать подзапросы в FROM. И Вот странно. До 9 версии любила, а теперь резко разлюбила :(. Я смотрел план - все таблицы сканятся по индексам или ключам как при наличии (SUM_DB<>0 OR SUM_CR<>0), так и без него. ASCRUS подумайте насчет: Код: plaintext 1. 2. 3. 4. 5. 6. Но тут не хватает group by. Реальный запрос сложнее - у операции есть еще масса атрибутов, которые нужно показывать в отчете :( И я писал уже, что знаю еще много вариантов, как переписать этот запрос, чтобы он работал. А вопрос состоял в том, что в ASA6,7,8 этот запрос и еще пара подобных работали без проблем. А теперь перестали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2005, 18:19 |
|
||
|
Странно работают коррелированные запросы в ASA 9.0.2
|
|||
|---|---|---|---|
|
#18+
авторИмеем ASA 9.0.2.3044и у меня были проблемы с некоторыми запросами на этом билде. После обновления до 3124 все стало нормально. И настроение у меня улучшилось... =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2005, 19:34 |
|
||
|
Странно работают коррелированные запросы в ASA 9.0.2
|
|||
|---|---|---|---|
|
#18+
rcryo авторИмеем ASA 9.0.2.3044и у меня были проблемы с некоторыми запросами на этом билде. После обновления до 3124 все стало нормально. И настроение у меня улучшилось... =) Проблема решилась. Дело оказалось не в билде, а в том, что БД была свежеперегруженная. И статистика по таблицам построилась криво :(. Первые сомнения у меня появились в тот момент, когда запросы вдруг пересстали тормозить! Я задумался и стал анализировать действия, но ничего, кроме выполнения разных вариантов запросов, правда в большом количестве я с БД не делал. Взял БД в состоянии до начала экспериментов - опять тормоза. Тогда я сделал для основных таблиц, затрагиваемых в запросе, CREATE STATISTICS. И все заработало. Правда и тут наблюдались странности : первые 2 запроса после создания статистики тормозили, а после этого стало работать нормально. Что-то все-таки с созданием статистики работает не так, как я ее понимаю :(. Основные данные в БД заливались через временные таблицы, т.е. выполнялись запросы типа Код: plaintext 1. 2. 3. 4. 5. Возникает вопрос - что я делаю не так? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2005, 19:12 |
|
||
|
Странно работают коррелированные запросы в ASA 9.0.2
|
|||
|---|---|---|---|
|
#18+
Вчера, когда 3182 качал, читал его readme - где то там как раз было указание на исправление бага с неправильным построением статистики. Почитайте поподробнее на sybase.com, может быть это как раз Ваша проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2005, 07:07 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=33267700&tid=2013397]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 334ms |

| 0 / 0 |
