Size: a a a

SqlCom.ru - Стиль жизни SQL

2021 January 28

NP

Nick Proskuryakov in SqlCom.ru - Стиль жизни SQL
Ilia Zviagin
Я хочу заменить, что это абсолютно идиотская задача для SQL
Напоминаю, у нас тут только по существу.
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Анна
Почему?
Ну потому что совершенно нехарактерная задача для реляционной СУБД.
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Nick Proskuryakov
Напоминаю, у нас тут только по существу.
Это по существу.
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Анна
Почему?
Определение реляционной таблицы: это неупорядоченное множество записей.
источник

А

Анна in SqlCom.ru - Стиль жизни SQL
Ilia Zviagin
Определение реляционной таблицы: это неупорядоченное множество записей.
Мне ее в качестве тестового присылали на вакансию как-то
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Анна
Мне ее в качестве тестового присылали на вакансию как-то
Очень плохо.
источник

NP

Nick Proskuryakov in SqlCom.ru - Стиль жизни SQL
Ilia Zviagin
Это по существу.
Нет. Это про обсудить. Обсуждения у нас в соседнем чате. Здесь нет проблемы. Здесь есть только мнение.
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
Подскажите плиз, как изменить схему партиционирования HEAP талицы?
Толкьо пересоздавать таблицу?
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
или, повесить туда кластерный индекс с новой схемой партиционировния, после чего дропнуть его?
источник

D

Danil in SqlCom.ru - Стиль жизни SQL
Андрій
Подскажите плиз, как изменить схему партиционирования HEAP талицы?
Толкьо пересоздавать таблицу?
Если есть возможность создать новую таблицу с новой схемой и перелить в нее данные лучше так и сделать
И переливать пачками по Н строк
Это если табла большая
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
Danil
Если есть возможность создать новую таблицу с новой схемой и перелить в нее данные лучше так и сделать
И переливать пачками по Н строк
Это если табла большая
а почему лучше чем вариант с созданием/удалением индекса?
а хотя глупый вопрос, понятно что лишняя операция...
источник

D

Danil in SqlCom.ru - Стиль жизни SQL
Долгая блокировка, раздуется транзакшин лог
Ну и по времени может занять больше
А в случае ошибки еще откат транзакции
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Андрій
Подскажите плиз, как изменить схему партиционирования HEAP талицы?
Толкьо пересоздавать таблицу?
Простите за вопрос, но heap это осознанный выбор? Если секционировать надо, значит таблица большая. Большие кучи это довольно плохо в целом
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
Oleg T
Простите за вопрос, но heap это осознанный выбор? Если секционировать надо, значит таблица большая. Большие кучи это довольно плохо в целом
Да, таблицы раньше использовались как временные, потом делался switch partition в основную.
впринципе, сейчас я их просто акуратно дропаю :)
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Андрій
а почему лучше чем вариант с созданием/удалением индекса?
а хотя глупый вопрос, понятно что лишняя операция...
Есть еще один очень плохой момент - если на куче есть некластерные индексы, то создание кластерного индекса вызовет их перестройку. Удаление кластерного индекса - тоже.
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Андрій
Да, таблицы раньше использовались как временные, потом делался switch partition в основную.
впринципе, сейчас я их просто акуратно дропаю :)
Не понял тогда, зачем секционировать то, что дропается?
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
Oleg T
Не понял тогда, зачем секционировать то, что дропается?
потому что я спрашиваю быстрее чем соображаю)
уже незачем. Но всеравно интересно было)
плюс обнаружил несколько хип таблиц где дейсвительно хип - неосознанный выбор, но туда всунем колумнстор партиционированый.
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
ну и если что - это не прод, just to be clear
поднимаем и чистим старый тестовый сервак.
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Андрій
ну и если что - это не прод, just to be clear
поднимаем и чистим старый тестовый сервак.
окей. понял. удачи
источник

С

Саня in SqlCom.ru - Стиль жизни SQL
Чисто гипотетический вопрос - допустим есть простая таблица-куча, где есть 3 столбца. Код клиента, тип документа и сумма.

Тип документов бывает двух видов - продажа и возврат (текстовое поле), сумма - всегда положительный инт. Код клиента - инт.

Что больше ресурсов системы сожрет, если нужно посчитать результат (продажи - возвраты) по клиенту

Есть два варианта кода - первый - это кейс с суммированием sum(case when d=накладная then sale else -sale)

Второй вариант - это селект из вложенного юниона:

Select tt, sum(totalsum) from
(Select tt, sale from tbl where d=накладная
Union all
Select tt,-sale from tbl where d=возврат) r1
Group by tt
источник