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

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

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

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

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

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

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

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

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

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

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

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

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


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