169 похожих чатов

Привет коллеги! Подскажите пожалуйста, как корректно оценить средний вес столбцов

в таблице?
Есть задача, сократить объем инсерта. Сокращать планирую построением топа самых жирных вставляемых полей(с дальнейшим анализом нужности). Размер изначально пустой таблицы после инсерта составляет 45гб. В таблице 600 полей. Я посчитал средний вес каждого поля функцией avg(datalehgth(colName)). Однако после сложения всех средних значений веса столбцов и умножении на кол-во строк, я получаю 7.5гб а не 45. То есть что-то я явно делаю не так. Подскажите пожалуйста, как можно корректно построить топ самых тяжёлых столбцов в табле? (Также в табле большая часть нулевых столбцов без значений, но они как я понимаю не должны иметь существенного веса)

11 ответов

68 просмотров

600 полей в таблице?

а каким образом ты будешь сокращать? ну допустим ты узнал что 10, 100 и 555 поля больше всех

Zakhary- Автор вопроса
Gopneg
а каким образом ты будешь сокращать? ну допустим т...

Эти поля передам в продуктовую команду для анализа необходимости их хранения для дальнейшего расчета

Zakhary
Эти поля передам в продуктовую команду для анализа...

из-за каких-то 45гб будешь людей напрягать? причем даже не 45, а скажем гб 10 тебе скинут

Zakhary- Автор вопроса

Вам надо просто посчитать sum(datalength) для каждой колонки Дальше оно с точностью до фактического fillfactor и нюансов типа одного бита на null даст нужное Вероятно, вам стоит почитать про секционирование и columnstore

План запроса и понимание всего процесса есть? Вдруг у тебя там селект тупит который используется для вставки

Zakhary- Автор вопроса
Yuriy T
План запроса и понимание всего процесса есть? Вдру...

Селект Каунт по условию работает секунд 15. Топ 100 с сортировкой по условию в пределах минуты. Как я вижу с логикой селекта проблемы маловероятны.

Потому что пустое поле не означает что под него не выделено место. Скопируй интересующую колонку (одну) во временный объект с той же метадатой и замерь его размер

Zakhary- Автор вопроса
Sergey Gladkikh
Потому что пустое поле не означает что под него не...

Спасибо попробую. Правда пока не представляю как это сделать для 600 столбцов

Похожие вопросы

Обсуждают сегодня

#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
возможно ли как-то передать в электрон или таури медиа поток с рендера 2д движка? двиг запускается как dll, а дальше надо как-то отправлять рендер кодировать не подходит, зр...
Kyle Nekto
7
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Карта сайта