Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / хранимая процедура для пересоздания ограмной таблици. Может так не надо? / 12 сообщений из 12, страница 1 из 1
03.10.2019, 10:53
    #39871004
FatumX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранимая процедура для пересоздания ограмной таблици. Может так не надо?
Пишем приложение с БД. Разработчики придумали раз в сутки дропать таблицу и соответственно потом ее-же пере создавать уже пустой, для последующего импорта в нее очень большого объема данных(порядка 10 млн. строк) из некоего xml-файлика. Каждый день файлик новый. Простая очистка таблицы разработчику не нравится. Говорит уж очень медленно. Хочет использовать для этого хранимую процедуру, давать учетной записи приложения права на удаление и создание объектов в БД мне очень не хочется. Опять же удаление и пхание больших объемов одновременно, наверное приведет к диким тормозам. MS SQL server 2016.
Хочу узнать мнение сообщества.
...
Рейтинг: 0 / 0
03.10.2019, 10:56
    #39871006
mnbvcx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранимая процедура для пересоздания ограмной таблици. Может так не надо?
FatumX Простая очистка таблицы разработчику не нравится. Говорит уж очень медленно.
TRUNCATE медленно?!
...
Рейтинг: 0 / 0
03.10.2019, 10:58
    #39871009
FatumX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранимая процедура для пересоздания ограмной таблици. Может так не надо?
можешь пояснить.
...
Рейтинг: 0 / 0
03.10.2019, 11:00
    #39871015
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранимая процедура для пересоздания ограмной таблици. Может так не надо?
FatumX,

Ну из всех видов очисток таблицы truncate, пожалуй, самый быстрый. Нужно понимать, как данные в этих 10млн строк ежедневно меняются. Если нужно вычистить 9999999 записей и оставить только одну, то пожалуй быстрее действительно сделать truncate и просто загружать данные заново.
...
Рейтинг: 0 / 0
03.10.2019, 11:02
    #39871017
FatumX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранимая процедура для пересоздания ограмной таблици. Может так не надо?
посмотрел тут.Вариант интерестный. попробую.
https://www.techonthenet.com/sql_server/truncate.php

Мне бы еще аргументов, для это способа для разраба.
...
Рейтинг: 0 / 0
03.10.2019, 11:05
    #39871019
FatumX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранимая процедура для пересоздания ограмной таблици. Может так не надо?
Беда в том, что никто не знает сколько строк меняется и как. Я вижу только Одно условие. полная очистка данных перед импортом и как можно быстрее.
...
Рейтинг: 0 / 0
03.10.2019, 11:39
    #39871037
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранимая процедура для пересоздания ограмной таблици. Может так не надо?
FatumX,

это мышление прикладника... Удаление и создание объектов может привести к ряду нежелательных последствий, в том числе неоднозначность развертывания, управления правами, фрагментация данных из-за "дыр" от таблиц и т.д.

Компромиссом может быть truncate таблицы, но эта команда требуется ALTER разрешений на объект, что не всегда приемлемо.

По-хорошему же, CRM строится на Integration Services решении. Кроме того, убедитесь, что база данных разрабатывается в проекте Visual Studio, это сэкономит в дальнейшем много времени на использовании версионирования, выпуске релизов, развертывании и так далее.

Но, судя, по вопросу, уровень разработчика близок к кустарному. Уж извините за прямоту.
...
Рейтинг: 0 / 0
03.10.2019, 12:00
    #39871049
Андрей Юниор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранимая процедура для пересоздания ограмной таблици. Может так не надо?
FatumXБеда в том, что никто не знает сколько строк меняется и как. Я вижу только Одно условие. полная очистка данных перед импортом и как можно быстрее.
А зачем вообще такая таблица нужна? Для чего эти 10 млн строк?

Обычный рецепт: две таблицы. Одна таблица основная постоянная - с индексами, с ограничениями и другими "плюшками". Вторая: промежуточная постоянная, но перед выгрузкой новых данных транкейтиться, и любые индексы дропаются. После загрузки данных индексы создаются заново. Основная таблица обновляется MERGE.

Из достоинств: можно отслеживать изменения любым способом, блокировка основной таблицы по времени минимальна.

Если разницы между данными много, то MERGE будет дольше работать, чем TRUNCATE + BULK INSERT.
...
Рейтинг: 0 / 0
03.10.2019, 12:19
    #39871061
PavelPS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранимая процедура для пересоздания ограмной таблици. Может так не надо?
FatumX,
можно дать разрешение на выполнение хранимой процедуры.

а табличка нужна в течении всего дня? может из неё удалять данные не перед вставкой, а раньше?
а что у вас за данные, что 10 млн строк это много?
...
Рейтинг: 0 / 0
03.10.2019, 12:31
    #39871071
uaggster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранимая процедура для пересоздания ограмной таблици. Может так не надо?
Создайте эту свою таблицу как in memory table с опцией sсhema stability, и ничего переделывать в логике приложения - будет не нужно.
...
Рейтинг: 0 / 0
03.10.2019, 12:34
    #39871076
uaggster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранимая процедура для пересоздания ограмной таблици. Может так не надо?
DURABILITY = SCHEMA_ONLY, конечно.

И импорт, заодно, будет раз эдак в дцать быстрее.
...
Рейтинг: 0 / 0
03.10.2019, 12:37
    #39871080
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хранимая процедура для пересоздания ограмной таблици. Может так не надо?
uaggsterDURABILITY = SCHEMA_ONLY, конечно.

И импорт, заодно, будет раз эдак в дцать быстрее.
ну тут смотря что дальше с ней делают, inmemory по прежнему в сторону только oltp. Больше всего нравиться NoParallelForDmlOnMemoryOptimizedTable что убивает абсолютно все радости от inmemory
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / хранимая процедура для пересоздания ограмной таблици. Может так не надо? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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