Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Partitioned by range таблица
|
|||
|---|---|---|---|
|
#18+
У меня есть табличка в DB2 9.1 на z/OS, заполненная персональными данными людей. Табличка большая, будет 200 млн строк. На каждого человека – одна строка. Заполняется она программой автогенерации на основании статистики использования фамилий и имен, то есть с учетом реального процентного соотношения разных фамилий. То есть Смирновых и Ивановых там около 2 % от общего числа, ну и так далее по убыванию втсречаемости. Есть мысль сделать партиционное табличное пространство для обеспечения параллелизма. И сделать table-partitioned распределение по диапазонам на основании колонки с фамилией. Я так понимаю,что нужно так определить диапазоны, чтобы на каждый из них попадало примерно одинаковое количество записей (не индексных, а данных)? Как бы так написать запрос на тестовой таблице (скажем в 2 млн строк), чтобы понять, какие диапазоны сделать. Например, решаем сделать 10 партиций, и хотим получить примерно такой резалт : От АБА до БАК – 10% От БАЛ до БЕШ – 10 % … Вся ИВА – 10% и т.д. Я думаю, проще написать програмку с курсором, которая, зная сколько всего записей, при достижении каждых 10 % запоминает значение ключевого поля… ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2010, 17:56 |
|
||
|
Partitioned by range таблица
|
|||
|---|---|---|---|
|
#18+
Сделал одним запросом. В таблице lastnames содержится фамилия (MAN_NAME) и коэффициент ее использования (coeff), так что сумма всех коэффициентов около 1. Тогда считаем коэффициент нарастающим итогом, и путем целочисленного деления определяем переходы. Запрос делит массив на 20 частей (правда, использовал rownum на персоналке с 9.7 для удобства определения предыдущей записи). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2010, 10:12 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=36900733&tid=1602535]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 158ms |

| 0 / 0 |
