powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / и снова немного архитектуры и эластика с рдбмс
25 сообщений из 269, страница 6 из 11
и снова немного архитектуры и эластика с рдбмс
    #40014470
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Суффикс КК = миллион?

Правильно ли я понял

1) 10kk == 10_000_000
2) 190k == 190_000
3) 10kk == 10_000_000
4) 186k == 186_000
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014471
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vyatich
Нужно видеть распределение данных, чтобы бить на партиции.
Только что-то мне подсказывает, что enti0_.X='XXXXXVAL123' - это бОльшая часть таблицы.

нет. это примерно 180к записей из 10м.
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014473
Фотография Vyatich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
select count(distinct enti0_.a) from entity_table enti0_ where enti0_.X='XXXXXVAL123' and enti0_.WHATEVER_STATE in  ('A', 'P','D','T','O','TP','AG', 'DG');


Сколько возвращает?
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014475
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоесть вот этот предикат у нас - самый полезный.

Код: java
1.
where X='XXXXXVAL123'


Он - кандидат на ключ партишенинга.

Он режет табличку на 1/52 часть и всё остальное туловище.

Варианты - списковое партицирования с явным перечислением всех значений?
Надо спросить у Андрея сколько уникальных иксов есть?

И хеш партицирование с ~50 партишенов. Две из них дадут промах но всяко лучше
чем бегать RANGE_SCAN по всей табличке.
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014478
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Перед партицированием выясняют полезность и эффективность индексирования.
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014479
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не знаю теоретической формулы. Поэтому ставлю эксперимент. Его цена все равно будет дешевле
чем попытка учесть 100500 параметров сервера... включая случайные влияния соседних сеансов и запросов
в этой-же БД.
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014480
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Просто партицирование стоит после индексов в очередности. Вот и все.
Это как лечить человека. Антибиотики позже водки))
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014482
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Суффикс КК = миллион?

Правильно ли я понял

1) 10kk == 10_000_000
2) 190k == 190_000
3) 10kk == 10_000_000
4) 186k == 186_000

да, всё верно.
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014483
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты-же видел план. INDEX_RANGE_SCAN по enti0_.X='XXXXXVAL123' не дал достаточно скорости.

Но этот индекс выполнил другую полезную работу. Он выдает сразу сортирующий итератор (курсор).
И это нельзя забывать.
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014485
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vyatich
Код: plsql
1.
select count(distinct enti0_.a) from entity_table enti0_ where enti0_.X='XXXXXVAL123' and enti0_.WHATEVER_STATE in  ('A', 'P','D','T','O','TP','AG', 'DG');


Сколько возвращает?

186k, enti0_.a - это уникальный ключ для каждой записи. считай айдишник (но он тоже есть). почему так - ну вот так вот.
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014486
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
почему так - ну вот так вот.
расшифруй)
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014488
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
andreykaT
почему так - ну вот так вот.
расшифруй)

давай выражусь корректнее - это строковое поле, которое имеет уникальное значение для каждой записи.
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014489
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
PetroNotC Sharp
пропущено...
расшифруй)

давай выражусь корректнее - это строковое поле, которое имеет уникальное значение для каждой записи.

А как быть с ID хибера и rowid оракла?
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014490
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,
Внезапно - ОРМ уникальность для объакта обеспечиват через ID записи.
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014492
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забудьте про rowId. Он нужен только для обеспечения работы индексов.
И для ремонтно-восстановительных работ когда база повреждена.

На него нельзя накручивать бизнес-смыслы.
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014493
Фотография Vyatich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда разбей на partitions по enti0_.X и создай локальный, УНИКАЛЬНЫЙ индекс по enti0_.a.
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014495
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Тоесть вот этот предикат у нас - самый полезный.

Код: java
1.
where X='XXXXXVAL123'


Он - кандидат на ключ партишенинга.

Он режет табличку на 1/52 часть и всё остальное туловище.

Варианты - списковое партицирования с явным перечислением всех значений?
Надо спросить у Андрея сколько уникальных иксов есть?

И хеш партицирование с ~50 партишенов. Две из них дадут промах но всяко лучше
чем бегать RANGE_SCAN по всей табличке.


10M записей партиционировать ? имхо таблица крошечная, смысла партиционировать нет.
планы с картинки бесполезены, т.к. сняты когда вся таблица явно в буферном кеше, затрат на и/о почти нет, соответственно и elapsed time миллисекунда. нужен план с 30 секундами и нормальная статистика, autotrace вот так показывает

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Statistics
----------------------------------------------------------
        515  recursive calls
          0  db block gets
        717  consistent gets
         31  physical reads
          0  redo size
        525  bytes sent via SQL*Net to client
        524  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
         59  sorts (memory)
          0  sorts (disk)
          1  rows processed
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014501
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Это кому? Я и не обращаюсь к оракловому.
У него два айди что ли? Тогда и будет как есть счас.
Бардак в голове и табле
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014508
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1
нужен план с 30 секундами
да. Нужно кардиограмму здорового сравнить с больным.
Но ему не доходит.
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014516
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1

10M записей партиционировать ? имхо таблица крошечная, смысла партиционировать нет.
планы с картинки бесполезены, т.к. сняты когда вся таблица явно в буферном кеше, затрат на и/о почти нет, соответственно и elapsed time миллисекунда. нужен план с 30 секундами и нормальная статистика, autotrace вот так показывает

Да. Вот эта ситуация с плавающим откликом показывает что у него полезные блоки выгружаются.
И от 2 до 30 секунд - это объясняет. Я-же предлагаю SEQUENTAL_READ по всей таблице
заменить на SEQUENTAL_READ по сортируемому полю в рамках 1 партишена который будет
в 50 раз меньше.

По поводу крошечной таблицы. Мы вычитываем 7М на 10 000 это примерно 700 символов на результирующую
строку. Это немало. Возможно оригинальная строка еще шире. В блоке мало строк. А это значит что INDEX_RANGE scan
еще менее эффективен. Строки некластеризованы вокруг одного блока.

Я кстати в качестве эксперимента предложу Андрейке просто еще раз пересоздать таблицу CTAS по сортированной
выборке. Этот чортов фактор кластеризации о котором так любят спрашивать новички... Мдя....
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014541
pavel_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
конкретно этому запросу должно помочь

Код: plsql
1.
CREATE INDEX I_ENTITY_TABLE_X_SORTED_BY_A ON entity_table(X,A)
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014543
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

По поводу крошечной таблицы. Мы вычитываем 7М на 10 000 это примерно 700 символов на результирующую
строку. Это немало. Возможно оригинальная строка еще шире. В блоке мало строк. А это значит что INDEX_RANGE scan
еще менее эффективен. Строки некластеризованы вокруг одного блока.

В 180к записях у него 15 мб, вся талица значит порядка 833 мб. нужен план при 30 секундах и статистика. если реально
andreykaT
select count(*) from Entity - занимает до 30


то i/o просто мертвое переодически. партиционирорвать 833 мб ... по мне это звучит странно.
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014544
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По настоящему крутые ораклисты добиваются того чтобы искомые данные ФИЗИЧЕСКИ лежали близко в
процессе выборки. Это или партишенинг или кластеризация. Индексы танцуют только
на 7% селективности (как было во времена Oracle 8i) и щас кажется задавили до 3%. И сюда-же до кучи
игры с механикой заполнения блока. В идеале выгодно чтоб блок заполнялся на 100%. Но это хуже для
updates. Можно подключить также Oracle Compression чтоб унылые повторения строк поджать. Получится
gzip внутри блока. Тоже можно попробовать.

В дата-аналитике еще дальше пошли. Там решили что не нужно физически хранить строку. А нужно - столбец.
Но это - если 500 колонок в таблице и выше. И это таки помогает.

Вобщем пробуйте физически консолидировать искомые данные. И так чтоб скорость insert/update упала но
не сильно.

Можно защелкнуть таблицу в приоритетах чтоб она была выше чем другие (BUFFER_POOL_KEEP) если
у Андрейки хватит привилегий. Тогда ее никто не вытеснит из BP.

Путей - масса. А вы говорите Хибернейт...
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014548
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1
mayton

По поводу крошечной таблицы. Мы вычитываем 7М на 10 000 это примерно 700 символов на результирующую
строку. Это немало. Возможно оригинальная строка еще шире. В блоке мало строк. А это значит что INDEX_RANGE scan
еще менее эффективен. Строки некластеризованы вокруг одного блока.

В 180к записях у него 15 мб, вся талица значит порядка 833 мб. нужен план при 30 секундах и статистика. если реально
andreykaT
select count(*) from Entity - занимает до 30


то i/o просто мертвое переодически. партиционирорвать 833 мб ... по мне это звучит странно.

да. в мониторе на ио уходит 98% ресурса и типа 2% - цпу
...
Рейтинг: 0 / 0
и снова немного архитектуры и эластика с рдбмс
    #40014564
Фотография Vyatich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
да. в мониторе на ио уходит 98% ресурса и типа 2% - цпу

а что там за дисковый массив, можно узнать?

И сбрасывается ли HWM? В купе с сильной фрагментацией данных это может привести к проблемам.
...
Рейтинг: 0 / 0
25 сообщений из 269, страница 6 из 11
Форумы / Java [игнор отключен] [закрыт для гостей] / и снова немного архитектуры и эластика с рдбмс
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]