|
Partition + tablespace (table + index)
|
|||
---|---|---|---|
#18+
Доброго дня господа ! Таблицы объемом до 10 мрд. записей Насколько помню партификация каждой части таблицы и индекса каждой части реализуются в разные tablespace Прошу подтвердить - верно ли понимаю Код: 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. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89.
Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2020, 13:30 |
|
Partition + tablespace (table + index)
|
|||
---|---|---|---|
#18+
HOME_X Насколько помню партификация каждой части таблицы и индекса каждой части реализуются в разные tablespace Как барин пожелает - можно все в разные, можно все в одно, можно часть в разные а часть в одно. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2020, 13:46 |
|
Partition + tablespace (table + index)
|
|||
---|---|---|---|
#18+
SY HOME_X Насколько помню партификация каждой части таблицы и индекса каждой части реализуются в разные tablespace Как барин пожелает - можно все в разные, можно все в одно, можно часть в разные а часть в одно. SY. Вы хотите сказать что это не сказывается на производительность ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2020, 13:51 |
|
Partition + tablespace (table + index)
|
|||
---|---|---|---|
#18+
HOME_X Вы хотите сказать что это не сказывается на производительность ? Зависит от огромного количества факторов. Решение раскидать по табличным пространствам можно принять исходя из: - желания размазать нагрузку по шпинделям - при наличии технической возможности, разумеется, и - для приведенного разбиения - в крайне ограниченном наборе сценариев использования. - упрощения административных задач (ILM) - например, держать оперативные данные на быстром носителе и по мере утери актуальности сносить на более дешевые носители с последующим сбросом на ленту. Как принималось решение в Вашем случае - мне неизвестно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2020, 13:59 |
|
Partition + tablespace (table + index)
|
|||
---|---|---|---|
#18+
HOME_X Вы хотите сказать что это не сказывается на производительность ? И где я это утверждал? Если про производительность, то у тебя число disk controllers = числу tablespaces? И если используется SAN ты можешь гарантировать что все tablespaces на разных LUN? Ну а в общем Oracle дает почти полную свoбоду как задать tablespaces (почему почти - для interval partitioning все что можно это список tablespaces используемых round-robin). А дальше все в руках DBA. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2020, 14:11 |
|
Partition + tablespace (table + index)
|
|||
---|---|---|---|
#18+
SY список tablespaces используемых round-robin Ну при желании довести тему до абсурда можно, наверное, Робину подкинуть достаточно длинный список, чтобы на несколько лет хватило слоняться :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2020, 14:36 |
|
Partition + tablespace (table + index)
|
|||
---|---|---|---|
#18+
Господа andrey_anonymous, SY Излагаю первопричину Таблица на 10 млдр. партифицирована по месяцу (tablespace ОДИН = WH_BWARCH_D) Код: 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.
Имею параметрическую таблицу с одной записью Create table PARAMETERT (dbeg DATE,dend DATE); Insert into PARAMETERT values (To_Date('01/05/2020','DD/MM/YYYY'),To_Date('31/05/2020','DD/MM/YYYY')); Код: 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.
Производительность устраивает Код: 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.
Код: 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.
Производительность - нереально долго иногда оптимизатор включает PARTITION RANGE FULL вместо PARTITION RANGE ITERATOR тогда можно "напокурить" 3-4 дня Мне необходим вариант с параметрической таблицей (PARAMETERT), константы не применять Как быть - спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2020, 15:36 |
|
Partition + tablespace (table + index)
|
|||
---|---|---|---|
#18+
Откуда берутся фильтры по 5 и 7 операциям? Это по ходу что-то из области FGAC. Рассматривать надо в комплексе, а не только "верхушку". По планам: - в планах разные оценки мощности datasource. - третий план не должен отличаться от первого по производительности при условии, что заданные параметры действительно адресуют единственный partition. - размещение разделов таблицы в различных ТП никак не должно влиять на операции с одним отдельно взятым разделом. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2020, 15:41 |
|
Partition + tablespace (table + index)
|
|||
---|---|---|---|
#18+
andrey_anonymous Откуда берутся фильтры по 5 и 7 операциям? Имеете в виду это ("T"."C_CEEIB_S_UA_DEAL"<='10000099999999999' AND "T"."C_CEEIB_S_UA_DEAL">='10000090000000000' OR "T"."C_CEEIB_S_UA_DEAL">='CTX00000000000000' AND "T"."C_CEEIB_S_UA_DEAL"<='CTX99999999999999' ) Суть следующая SysAdmin - сделал таблицы - пользователю (мне) предоставляется системная view, в которой реализован СРД и некоторые вторичные фильтры, это какие-то "затычки " по группе счетов andrey_anonymous - в планах разные оценки мощности datasource. Мне не ясно, что на это повлияло, если можете подсказать - буду благодарен andrey_anonymous - третий план не должен отличаться от первого по производительности при условии, что заданные параметры действительно адресуют единственный partition. Не сомневайтесь - период един - partition аналогичен Имею параметрическую таблицу с одной записью Create table PARAMETERT (dbeg DATE,dend DATE); Insert into PARAMETERT values (To_Date('01/05/2020','DD/MM/YYYY'),To_Date('31/05/2020','DD/MM/YYYY')); Обратите внимание - что в первом случае это КОНСТАНТНО - определенный период (partition) а в третьем варианте - может быть плавающим Т.е. - возможно нет подключение так называемого динамический плана ? Полагаю не должно быть циклов = PARTITION RANGE ITERATOR andrey_anonymous - размещение разделов таблицы в различных ТП никак не должно влиять на операции с одним отдельно взятым разделом. Принято - первичный вопрос снят Спасибо - размещение разделов таблицы в различных ТП никак не должно влиять на операции с одним отдельно взятым разделом. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2020, 17:51 |
|
Partition + tablespace (table + index)
|
|||
---|---|---|---|
#18+
HOME_X SysAdmin - сделал таблицы - пользователю (мне) предоставляется системная view, в которой реализован СРД и некоторые вторичные фильтры, это какие-то "затычки " по группе счетов andrey_anonymous Мне не ясно, что на это повлияло, если можете подсказать - буду благодарен На это повлиял итоговый текст запроса после раскрытия view и fgac, который Вы не наблюдаете. Трасса 10053 должна помочь. HOME_X andrey_anonymous
адресуют единственный partition. Обратите внимание - что в первом случае это КОНСТАНТНО - определенный период (partition) а в третьем варианте - может быть плавающим Т.е. - возможно нет подключение так называемого динамический плана ? Полагаю не должно быть циклов = PARTITION RANGE ITERATOR Нет. Признаков динамического плана в представленных планах не наблюдаю. По итераторам: - Partition range single возможно получить только в том случае, когда на стадии компиляции оптимизатор достоверно определит, что для выполнения запроса потребуется один и только один раздел. В Вашем случае два константных ключа уложились в один конкретный раздел. Другой вариант - ограничение на ключ секционирования наложено как строгое равенство. Ни в какой другой ситуации range single получить нельзя. - Partition range iterator - основной вариант работы с partitioned table. Получаете, когда ограничение на ключ секционирования имеет вид between или производные от него. При этом, вообще говоря, следует обращать внимание на pstart и pstop. Если на фазе компиляции оптимизатор опознает какие конкретно разделы попадают в диапазон поиска - то увидите номера начального и конечного разделов, между которыми идет перебор. Если раздел по факту требуется один - то pstart=pstop . Если обе границы диапазона вычисляются в динамике - увидите "Key, Key". Ну и комбинации, ессно :) - Partition range ALL получаете в двух ситуациях:
А в Вашем случае и текст view неизвестен, и fgac не исключен - заявленное периодическое появление partiton ALL в плане как бы намекает... Потому исследуйте проблему. Если невозможно добиться содействия DBA, то можно пойти как путем исключения отдельных компонент (view), так и по косвенным - отследить обращения к разделам в v$session_longops, помониторить ожидания, помедитировать на sql_monitor, почитать raw трассу 10046 level 8 или даже 10053 - все, что доступно с Вашим уровнем допуска к системе и способно помочь понять, в чем конкретно затык плана #3 в сравнении с планом #1. ...и да, ограничения на ключ можно наложить через контекст. ...промеждупрочим, для очистки совести попробуйте сравнить объем данных аудита, получаемых при при выполнении (1) и (3) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2020, 18:59 |
|
Partition + tablespace (table + index)
|
|||
---|---|---|---|
#18+
Код: 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. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2020, 19:36 |
|
Partition + tablespace (table + index)
|
|||
---|---|---|---|
#18+
andrey_anonymous, Спасибо за детальное описание и уделенное время Буду бороться ... |
|||
:
Нравится:
Не нравится:
|
|||
09.05.2020, 12:58 |
|
Partition + tablespace (table + index)
|
|||
---|---|---|---|
#18+
andrey_anonymous, Хотелось бы получить ответ на - можно ли сделать partition (subpartition) по ПОЛНОМУ логическому условию ? Т.е. хочу сделать в парт-не subpartition и разнести логику представления отраженного ранее Код: plsql 1. 2. 3. 4.
в отдельные подтаблицы Эта часть ясна относительно ясна = Range Less "T"."C_CEEIB_S_UA_DEAL">='10000090000000000' "T"."C_CEEIB_S_UA_DEAL"<='10000099999999999' Эта часть под вопросом - получается литерал CTX.... "T"."C_CEEIB_S_UA_DEAL">='CTX00000000000000' "T"."C_CEEIB_S_UA_DEAL"<='CTX99999999999999' Хотелось бы иметь в партишине ДВЕ подчасти (не больше !!!!!) partition by range (DATE_REP)( partition MONTH201006 values less than (To_Date('01/07/2010','YYYY-MM-DD')) tablespace DW_DATA_MART_D_201006 ( subpartition by ??????? - здесь записи по толстому условию subpartition by ??????? - здесь все остальное ), Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2020, 19:15 |
|
Partition + tablespace (table + index)
|
|||
---|---|---|---|
#18+
HOME_X, Секционирование по виртуальному столбцу ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2020, 20:01 |
|
Partition + tablespace (table + index)
|
|||
---|---|---|---|
#18+
xtender, А как будет осуществляться select ? Обыкновенное поле .... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2020, 22:13 |
|
Partition + tablespace (table + index)
|
|||
---|---|---|---|
#18+
HOME_X Хотелось бы иметь в партишине ДВЕ подчасти ( не больше !!!!! ) Мнэээ... А в чем затруднение? Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2020, 16:21 |
|
Partition + tablespace (table + index)
|
|||
---|---|---|---|
#18+
andrey_anonymous Мнэээ... А в чем затруднение? Немного потерялся, извините -- сейчас додумаю Ваше предложение Еще несколько вопросов 1.В чем существенная разница между Party и SubParty, это отдельные таблицы ? 2.Как строиться LOCAL индекс отдельно по каждому Subparty или один в пределах родительcкого Party 3.Как можно увидеть эти подиндексы Пример типа Код: plsql 1. 2.
4.Если в SubParty до 10-12 млн. записей при этом поисковых ключей (групп) не более 100 и ключи достаточно статичны имеет ли смысл создать bitmap index local Заранее благодарен ! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 21:30 |
|
Partition + tablespace (table + index)
|
|||
---|---|---|---|
#18+
HOME_X 1.В чем существенная разница между Party и SubParty, это отдельные таблицы ? 2.Как строиться LOCAL индекс отдельно по каждому Subparty или один в пределах родительcкого Party 3.Как можно увидеть эти подиндексы 4.Если в SubParty до 10-12 млн. записей при этом поисковых ключей (групп) не более 100 и ключи достаточно статичны имеет ли смысл создать bitmap index local 1. Самая мелкая часть разбиения является отдельным сегментом данных. т.е. если используются partitions, то каждый partition соответствует отдельному сегменту данных, при этом сама таблица сегмента не имеет. Если используются subpartitions - то сегменты будут размещаться именно для них, таблица и partitions сегментов иметь не будут. 2. Локальный индекс строится по сегменту данных. Соответственно, при использовании subpartitions сегменты локальных индексов будут созданы именно по ним. 3. {dba|all|user}_ind_ partitions, {dba|all|user}_segments 4. Не готов ответить. Зависит от поисковых запросов и методов загрузки данных (последнее особенно критично в старых версиях). Битмап- индексы при указанном раскладе могут быть выгодны, если запросы хорошо ложатся на операции типа bitmap-or, bitmap_and. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 15:19 |
|
|
start [/forum/topic.php?fid=52&msg=39955721&tid=1881202]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
130ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 230ms |
0 / 0 |