Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Оптимизация рабаты с BIG DATA
|
|||
|---|---|---|---|
|
#18+
Shanga, какая Вам разница - сколько суток? Эта таблица заполняется один раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2018, 18:35 |
|
||
|
Оптимизация рабаты с BIG DATA
|
|||
|---|---|---|---|
|
#18+
75 394 027 566 сочетаний из 60 по 10. Объем таблицы при длине сгенерированной строки 50 (например) - примерно 4Тб. Тут юмор какой-то обсуждают? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2018, 19:49 |
|
||
|
Оптимизация рабаты с BIG DATA
|
|||
|---|---|---|---|
|
#18+
Вкратце, идея состоит в уменьшении количества Nested Loops при обработке больших объемов. Для этого создаем промежуточную таблицу, в которой уже есть упорядоченные пары значений: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Для простоты используем только 2 таблицы в декартовом произведении, но можем использовать и больше. Затем при помощи данной таблицы пар получаем запрос вида: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. результаты которого можно сохранять в нужном формате. Не совсем ясна необходимость хранения столь большого массива комбинаций в материализованном виде, также смущают сложности, которые обязательно возникнут при добавлении новых зон, ибо добавление всего одной зоны к уже имеющимся 60 увеличит объем хранимой информации на 20%. Т.е. 4 ТБ становятся 4.8 ТБ, 62 зоны - 5.7 ТБ, и так далее. Опять же, объем индексов тоже будет расти, как и сложность в обслуживании данной таблицы. Естественно, часть проблем можно решить используя COLUMNSTORE, но, ИМХО, имеет смысл рассмотреть варианты с представлениями или процедурами/функциями для реализации данного функционала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2018, 01:10 |
|
||
|
Оптимизация рабаты с BIG DATA
|
|||
|---|---|---|---|
|
#18+
BalbidonЕстественно, часть проблем можно решить используя COLUMNSTOREВроде же columnstore практ. бесполезен на уникальных столбцах, не? А здесь, как я понял, будут уникальные значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2018, 07:54 |
|
||
|
Оптимизация рабаты с BIG DATA
|
|||
|---|---|---|---|
|
#18+
Ennor Tiegael, Строки уникальны - это да. Ну а в столбцах будут миллиарды повторений из 60+ уникальных значений, так что, мне кажется, COLUMNSTORE - самое оно. Особенно для первых столбцов эффект должен быть хорош, т.к. в первом столбце будет всего 60+ групп, вместо 75 миллиардов повторяющихся значений. К сожалению, я не нашел никаких деталей реализации COLUMNSTORE COMPRESSION в SQL Server, но даже если там простой RLE алгоритм, должно работать весьма эффективно. Если бы это была HPE Vertica или AWS Redshift, то первые 9 столбцов можно было бы определить как RLE/Runlength, а последний как Dictionary, что в сумме дало бы очень серьезный эффект сжатия. Но это оффтоп... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2018, 22:05 |
|
||
|
Оптимизация рабаты с BIG DATA
|
|||
|---|---|---|---|
|
#18+
я всё-таки не пойму, если тебе нужны просто комбинации - то почему ты не используешь просто какой-нибудь язык программирования, который бы тебе эти комбинации нагенерировал? А вообще, у меня главный вопрос - какова конечная цель всех этих комбинаций? Что ты с ними будешь делать? Просто если ты хочешь их пронумеровать и обращаться по номеру - имеет смысл написать формулу, которая сопоставляла бы комбинацию с номером и высчитывала её по мере запросов. Запросил комбинацию номер 12435 - и эта формула тебе её выдала. Если ты хочешь распечатать и на стенку повесить - то надо написать прогу на C++, она в блокнот всё выдаст - и печатай. Если ты хочешь на экран пользователю (зачем-то) выводить -то можно, опять же, высчитывать ровно те, которые нужно отобразить, игнорируя остальные. Если ты хочешь полученную таблицу INNERJOIN с какой-то другой - то это абзац. Что-то не то у тебя с проектированием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2018, 10:49 |
|
||
|
Оптимизация рабаты с BIG DATA
|
|||
|---|---|---|---|
|
#18+
Balbidon, А, вы имели в виду хранить каждое значение последовательности в своем столбце? Тогда может быть, но писать джойны к такому будет больно. Я-то полагал, что речь идет и некоей свертке или хэше, и тут columnstore вряд ли что-то даст, значения-то уникальные. Даже если сделать ключ tinyint (60 элементов поместятся без проблем), а хэш соответственно binary(10)... не, все равно фигня какая-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2018, 10:50 |
|
||
|
Оптимизация рабаты с BIG DATA
|
|||
|---|---|---|---|
|
#18+
Ennor Tiegael, Джойны к таблице с COLUMNSTORE индексом ничем не отличаются от джойнов к таблице без оного в плане синтаксиса. Планы же в первом случае будут даже более эффективными, т.к. порядок столбцов может быть любым и других индексов не потребуется. А как раз без COLUMNSTORE придется создавать помимо кластерного (не обязательно, но лучше иметь) еще и по некластерному на каждый столбец. Charles Weyland, Поддержу однозначно. Но все-таки академический интерес данная задача представляет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2018, 23:43 |
|
||
|
|

start [/forum/topic.php?fid=46&startmsg=39733173&tid=1688760]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 218ms |
| total: | 372ms |

| 0 / 0 |
