Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
оценка стоимости (вдохновляясь "Cost Based Oracle Fundamentals" by Jonathan Lewis)
|
|||
|---|---|---|---|
|
#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. и план Код: 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. 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. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2015, 14:16 |
|
||
|
оценка стоимости (вдохновляясь "Cost Based Oracle Fundamentals" by Jonathan Lewis)
|
|||
|---|---|---|---|
|
#18+
Упс. Размер страницы в 32K, экстент и префетч по 32 страницы. Играя CPU speed, TRANSFERRATE И OVERHEAD, я получил уравнение: total cost = (I/O Cost)* OVERHEAD + 46*TRANSFERRATE + (Re-Total Cost) Re-Total Cost - по-видимому, пересчитанное в стоимость CPU. I/O Cost - похоже, количество экстентов. Но что же такое 46? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2015, 14:23 |
|
||
|
оценка стоимости (вдохновляясь "Cost Based Oracle Fundamentals" by Jonathan Lewis)
|
|||
|---|---|---|---|
|
#18+
У нас есть: Параметры DBM: CPUSPEED Параметры табличного пространства: PAGESIZE EXTENTSIZE OVERHEAD TRANSFERRATE PREFETCHSIZE (неявный - количество контейнеров?) Параметры буферпула SIZE NUMBLOCKPAGES BLOCKSIZE Таблица Number of Pages Играя этими параметрами, можно составить систему линейных уравнений. Далее я ожидал, что будут расчитаны многоблочные чтения, но Prefetch eligible почему-то нет. Таблица в 362 страницы занимает 11 полных 32-страничых экстентов и ещё один на одну треть. Время многоблочных чтений - 12 * (OVERHEAD + 32*TRANSFERRATE), когда OVERHEAD=1 и TRANSFERRATE =1, это 396. Время одноблочных чтений - 362*(OVERHEAD+TRANSFERRATE) = 724 Но расчёты по цифрам из EXPLAIN показывают даже не 362*OVERHEAD+362*TRANSFERRATE, а 362*OVERHEAD+46*TRANSFERRATE. Быть может, это какая-нибудь эвристика на тему "а может, эти страницы уже в буферном пуле", и тогда надо попробовать радикально увеличить размер таблицы и/или уменьшить размер буферного пула. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2015, 09:59 |
|
||
|
оценка стоимости (вдохновляясь "Cost Based Oracle Fundamentals" by Jonathan Lewis)
|
|||
|---|---|---|---|
|
#18+
Предположим, что OVERHEAD*A + TRANSFERRATE*B + cpuspeed*C = cost Я переберу (10,1,1) (1,10,1) (1,1,1) вот так (r10000000 - это rows=10000000): Код: sql 1. 2. 3. 4. 5. 6. cpuspeed на самом деле установлена в 1e-06, так надо будет поделить C на это число. Получаем систему Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2015, 09:15 |
|
||
|
оценка стоимости (вдохновляясь "Cost Based Oracle Fundamentals" by Jonathan Lewis)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. количество строк от 100 до 100000000. Колонка B равна количеству занимаемых страниц. Колонка A могла бы быть связана с количеством экстентов. 362 (страницы)/32(страниц в экстенте)=11.3125, т.е. 12 экстентов. Но при пересозданном TS, extent = 8, prefetch = 8 (проверил только вторую строчку сверху) она у меня не поменялась. Однако 46 близок к 362/8. Итак, Код: plaintext 1. 2. 3. 4. 5. 6. Не считает возможным считывать больше 256К за раз? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2015, 09:35 |
|
||
|
оценка стоимости (вдохновляясь "Cost Based Oracle Fundamentals" by Jonathan Lewis)
|
|||
|---|---|---|---|
|
#18+
Положим OVERHEAD=10 и TRANSFERRATE=0.4. Читаем 1 мег. 32 страницы читаются за 32*TRANSFERRATE=12.8 мс. К этому прибавляется OVERHEAD, который будет 10 или 40, в зависимости от того, кусками по 256к или 1м читает. Отсюда гигантская разница в общей стоимости. Разумеется, это только расчётное, а в реальности разница во времени может быть много меньше, потому что куски лежат рядом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2015, 10:57 |
|
||
|
оценка стоимости (вдохновляясь "Cost Based Oracle Fundamentals" by Jonathan Lewis)
|
|||
|---|---|---|---|
|
#18+
Под виндами (Windows server 2008r2) картина на NTFS та же, в оценщике ограничение в 256К на порцию (под линухом iostat показал, что это и физически так). (Надо ещё raw devices попробовать). Гуглежом пытался найти, где такое ограничение у DB2 установлено (считается, что Оракуль спрашивает ограничение у операционной системы и что у винды и традиционного линуха это 1 М), но ничего не смог. Ещё попробовал extent size = 2, prefetch size = 2 и 4 с одним и двумя контейнерами - разницы в цене не увидал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2015, 14:00 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=39072595&tid=1600710]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 286ms |
| total: | 448ms |

| 0 / 0 |
