Обсуждались результаты работы SQL с коллегой и обсуждалась тема сохранения таблиц хранилища данных. Мой коллега (который намного более опытен, чем я) утверждает, что быстрее отбрасывать таблицу, воссоздавать ее и вставлять все свои записи, чем выполнять стандартные операции DML в таблице, когда происходят обновления данных. Будучи скептиком, я и мой предыдущий справочный фон (в R), кажется мне совершенно интуитивным для меня.Ванильные операции DML против DROP, RECREATE, (RE) INSERT - что более эффективно?
Отдельная запись составляет ок. 1,6 КБ, с распространением около ок. 50 столбцов. Количество записей зависит от одного бизнес-процесса, но размеры таблиц варьируются по размеру, причем наименьшее составляет около 25000 записей, а наибольшее - около 25000000. Типичные данные загружаются в таблицы ODS, см. От 0 до 500 записей, которые создаются или изменяются за таблицу в день.
Какой вариант является более производительным, сохраняя хорошо индексируется таблицы и используя операции ваниль DML (INSERT
, UPDATE
, DELETE
) против двух операций DML (DROP TABLE
, CREATE TABLE
) с одной INSERT
операции?
'... распространение свыше ок. 50 столбцов .... 'Это не таблица базы данных. Это электронная таблица! – joop
@joop действительно. Я слышу вас, но мы не можем контролировать объем этих таблиц ODS. Наши исходные системы имеют определенную модель данных (EAV), которые мы делаем для создания таблиц, подобных ODS, потому что попытка сделать оперативную отчетность по модели данных EAV является самоубийством. Если клиент настроил набор данных на 100 атрибутов, таблица будет иметь * k * + 100 столбцов, где * k * - некоторая константа (5, если я правильно помню). – Marley