|
|
|
In-Memory Option. Test Case
|
|||
|---|---|---|---|
|
#18+
Почитав тесты производительности 12с In-Memory Option, провёл аналогичные на своих данных. У коллег: oracle 12c inmemory Хабр получилось очень сильное ускорение, а у меня пока нет... Данные для теста - "звезда" из 5 таблиц: Fact Table - 17 колонок, 17,7 млн. записей, ~1 Гб. 4 Dimension Tables: - 11 кол., 0,3 млн. записей - 11 кол., 0,18 млн. записей - 8 кол., 350 записей - 7 кол., 35 записей Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production Типовой запрос, который генерирует BI Tool: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Запрос в моём понимании должен хорошо ускоряться через IM: нужно много данных прочитать, колонок выбираем мало, агрегируем. Fact Table - Range Partitions по дате, индексов, pk и fk для данного теста нет. 1) Запускаем NO INMEMORY: Код: plsql 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. 27. 28. 29. 30. 31. 32. 33. 34. 2) Запускаем INMEMORY. Поколоночное хранение со сжатием в памяти. Запросы по этим таблицам должны летать, но нет.. Код: plsql 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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. На других запросах тоже тестировал, на некоторых, например только FT без join, получалось ускорение в 2-3 раза, но не больше. Что не так с моим тестом, где подвох? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2016, 01:09:21 |
|
||
|
In-Memory Option. Test Case
|
|||
|---|---|---|---|
|
#18+
У Вас стоит последний IMDB Patch? Что выводит команда "$ORACLE_HOME/opatch lsinventory"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2016, 02:57:48 |
|
||
|
In-Memory Option. Test Case
|
|||
|---|---|---|---|
|
#18+
twinplay, Что не так с моим тестом, где подвох? С inmemory в живую не работал, но предположу, что затык на hash join. Преимущество inmemory фильтрации будет лучше видно, если будет какой то фильтр на измерении, с помощью которого oracle сможет создать bloom filter/part join filter на стороне inmemory движка, а в join придут уже сильно отфильтрованные данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2016, 10:53:31 |
|
||
|
In-Memory Option. Test Case
|
|||
|---|---|---|---|
|
#18+
Патчи не установлены. Это может кардинально повлиять? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. pihel, тестировал и на других запросах (без hash join и с фильтрами), большой разницы не получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2016, 14:07:55 |
|
||
|
In-Memory Option. Test Case
|
|||
|---|---|---|---|
|
#18+
twinplayПатчи не установлены. Это может кардинально повлиять? Может кардинально повлиять. В январском BP ораклы кардинально что-то переписали, у меня в In-Memory планы поменялись после его установки. Вот патч: Patch 22899531: DATABASE PROACTIVE BUNDLE PATCH 12.1.0.2.160419 (APR2016) Это последний - лучше его ставить (он кумулятивный - включает в себя все предыдущие). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2016, 20:55:26 |
|
||
|
In-Memory Option. Test Case
|
|||
|---|---|---|---|
|
#18+
opatch12ctwinplayПатчи не установлены. Это может кардинально повлиять? Может кардинально повлиять. В январском BP ораклы кардинально что-то переписали, у меня в In-Memory планы поменялись после его установки. Вот патч: Patch 22899531: DATABASE PROACTIVE BUNDLE PATCH 12.1.0.2.160419 (APR2016) Это последний - лучше его ставить (он кумулятивный - включает в себя все предыдущие). Тестировал на ноутбуке с Win x64, а для Win, как я понял, апрельский патч ещё не вышел. Придётся с январского (p22310559_121020_MSWIN-x86-64) начинать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2016, 11:01:52 |
|
||
|
In-Memory Option. Test Case
|
|||
|---|---|---|---|
|
#18+
twinplay, Этот запрос не покажет особого ускорения, поскольку - нет фильтрации по условиям >, <, =, IN - HASH JOIN выполняется без использования ghtbveotcnd In-Memory - Вы что-то выигрываете на доступе к табличным данным, но очень немного, поскольку ваши небольшие таблицы лежат в BUFFER CACHE - Vector Group By в плане отсутствует, то есть In-Memory Aggregation тоже не используется Верно подмечено 19259284 Поставьте фильтры на данные из таблиц измерений: - dim_customer - dim_product - dim_currency - DIM_CONTRACT_IM Чтобы отбиралось из них поменьше строк и посмотрите, что получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2016, 17:02:53 |
|
||
|
In-Memory Option. Test Case
|
|||
|---|---|---|---|
|
#18+
twinplay... а для Win, как я понял, апрельский патч ещё не вышел. Придётся с январского (p22310559_121020_MSWIN-x86-64) начинать. Вышел. Даже вышел следующий бандл: Patch 23179016 WINDOWS DB BUNDLE PATCH 12.1.0.2.160531 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2016, 21:39:22 |
|
||
|
In-Memory Option. Test Case
|
|||
|---|---|---|---|
|
#18+
Валерий Юринскийtwinplay, Этот запрос не покажет особого ускорения, поскольку - нет фильтрации по условиям >, <, =, IN - HASH JOIN выполняется без использования ghtbveotcnd In-Memory - Вы что-то выигрываете на доступе к табличным данным, но очень немного, поскольку ваши небольшие таблицы лежат в BUFFER CACHE - Vector Group By в плане отсутствует, то есть In-Memory Aggregation тоже не используется Верно подмечено 19259284 Поставьте фильтры на данные из таблиц измерений: - dim_customer - dim_product - dim_currency - DIM_CONTRACT_IM Чтобы отбиралось из них поменьше строк и посмотрите, что получится. Валерий, 1) Если я поставлю фильтры на таблицы измерений, то у меня запрос будет летать и без IN-MEMORY (с правильными индексами, partitions, parallel). Запрос этот вполне типовой для аналитики. Существенное ускорение в некоторых редких частных случаях я получил. А возможность удалить индексы по-моему не аргумент для покупки дорогой опции. 2) Я, к слову, ещё сравнивал производительность на этих же данных c HP Vertica (column store без in-memory). В Vertica получается значительно быстрее. Очень надеюсь, что опция будет доведена до ума, т.к. идея сама по себе отличная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2016, 00:05:55 |
|
||
|
In-Memory Option. Test Case
|
|||
|---|---|---|---|
|
#18+
twinplay, покажи отчеты SQL Monitor'a для обоих вариантов: Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2016, 00:38:44 |
|
||
|
In-Memory Option. Test Case
|
|||
|---|---|---|---|
|
#18+
twinplay, ну и, безотносительно IM, добавьте FK с rely и установите query_rewrite_integrity=enforced, у вас тогда на 2 таблицы/хэшджойна меньше в запросе будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2016, 00:48:16 |
|
||
|
In-Memory Option. Test Case
|
|||
|---|---|---|---|
|
#18+
Установил Patch 23179016 WINDOWS DB BUNDLE PATCH 12.1.0.2.160531. Ощутимо это не ускорило запрос с IM. xtendertwinplay, ну и, безотносительно IM, добавьте FK с rely и установите query_rewrite_integrity=enforced, у вас тогда на 2 таблицы/хэшджойна меньше в запросе будет Согласен про FK, но не стоит задача ускорить конкретно этот запрос. В данном случае rely disable замедлил запрос (особо не разбирался почему), enable ускорил ~ 1,5 раза (но insert замедляется). Пока сделал для себя вывод, что IM дает ощутимые ускорения только в каких-то частных случаях и пока не конкурент аналитическим колоночным БД (Vertica, Greenplum). А надежда была :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2016, 11:30:48 |
|
||
|
In-Memory Option. Test Case
|
|||
|---|---|---|---|
|
#18+
xtendertwinplay, Пока сделал для себя вывод, что IM дает ощутимые ускорения только в каких-то частных случаях и пока не конкурент аналитическим колоночным БД (Vertica, Greenplum). А надежда была :( Вы на основании своего частного случая делаете такой глобальный вывод ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2016, 22:11:45 |
|
||
|
In-Memory Option. Test Case
|
|||
|---|---|---|---|
|
#18+
opatch12c, я думаю, он тупо еще не прогонял такие же тесты на Вертике и Гринплуме ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2016, 23:08:54 |
|
||
|
In-Memory Option. Test Case
|
|||
|---|---|---|---|
|
#18+
opatch12c, xtender, Есть схема в Oracle 12c EE c несколькими десятками таблиц. Есть аналогичная схема в HP Vertica 7.2 c теми данными. Есть полсотни аналитических дэшбордов в BI Tool, взятые с реальных проектов, которые генерируют сотни запросов. Кто работал с обоими этими СУБД, представляет разницу в производительности в аналитике. В дополнение была сделана 3-я аналогичная схема с использованием Oracle IM. Приведенный в топике запрос взят, как типовой... Если кто-то видел объективные бенчмарки Vertica vs Oracle IM, поделитесь ссылкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 16:02:13 |
|
||
|
In-Memory Option. Test Case
|
|||
|---|---|---|---|
|
#18+
twinplay Кто работал с обоими этими СУБД, представляет разницу в производительности в аналитике. Зачем сравнивать кластер с сингл инстанс ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:08:10 |
|
||
|
In-Memory Option. Test Case
|
|||
|---|---|---|---|
|
#18+
ora601twinplayКто работал с обоими этими СУБД, представляет разницу в производительности в аналитике. Зачем сравнивать кластер с сингл инстанс ? Тестовая схема развёрнута на Vertica с 1 нодой. Также используются только суперпроекции (т.е. нет доп. проекций для повышения производительности, индексов в Vertica не существует). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 09:37:14 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39265763&tid=1887981]: |
0ms |
get settings: |
14ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
76ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 418ms |

| 0 / 0 |
