У меня есть таблица «A», содержащая 40 столбцов. Мне нужно скопировать данные из 20 конкретных столбцов из «A», в другую таблицу «B», имеющую эти 20 столбцов. Там будет около 3 - 10 миллионов записей. Что будет самым эффективным способом сделать это в PLSQL.Скопируйте данные из таблицы и загрузите ее в другую таблицу
ответ
"ежедневная таблица B будет усечена и новые данные будут вставлены в нее от A."
Хорошо, поэтому самый эффективный способ сделать это - не делать этого. Вместо этого используйте материализованное представление; материализованный просмотр журнала в таблице A позволит вам захватывать инкрементные изменения и применять их ежедневно или в любом другом окне, которое вам нравится. Find out more.
По сравнению с этим подходом с использованием ручного PL/SQL - или даже чистого SQL - смешно неэффективно.
Вам нужно сделать какие-либо преобразования по данным или просто скопировать данные прямо из одной таблицы в другую?
Самый простой способ сделать это, хотя вам придется создавать индексы отдельно.
create table B as (select A.c1, A.c2, A.c3..... from A);
Если таблица х уже существует, вы просто могли бы сделать
insert into B select A.c1, A.c2.... from A
Чтобы ускорить этот процесс, вы хотели бы, чтобы удалить все индексы в таблице х, пока пластина не было сделано.
Нет, сортировка данных не требуется, просто нужно скопировать данные в B. Ежедневная таблица «B» будет усечена, и новые данные будут добавлены. Итак, какой будет наиболее эффективный способ 1) Вставить в B выбрать ИЛИ 2) BULK COLLECT –
Я никогда не проводил тест производительности. Это одноразовая работа? –
Я пытался с INSERT INTO, но что мне делать, если мне нужно сделать фиксацию после каждой вставленной 50000 строк? –
- 1. Скопируйте данные из одной таблицы в другую таблицу в MYSQL
- 2. Скопируйте данные из таблицы и обновите ее
- 3. Скопируйте данные из таблицы в таблицу
- 4. Скопируйте данные из одной таблицы в одну базу данных в другую таблицу в другую базу данных
- 5. Скопируйте данные таблицы из одной базы данных в другую
- 6. Скопируйте строку из таблицы в другую таблицу в Access
- 7. Скопируйте определенные данные из одной таблицы в другую в sql
- 8. Скопируйте заполненные строки из таблицы в другую
- 9. В sqlite3: скопируйте столбец из одной таблицы в другую таблицу
- 10. Скопируйте несколько листов из одной таблицы в другую таблицу
- 11. Скопируйте несколько столбцов из таблицы в другую
- 12. Скопируйте столбец из одной таблицы в другую таблицу
- 13. Скопируйте данные из таблицы в таблицу, выполняя INSERT или UPDATE
- 14. Скопируйте всю таблицу SQL в другую и обрезайте исходную таблицу
- 15. Скопируйте таблицы из одной mysql в другую
- 16. Извлечь данные из одной таблицы и вставить в другую таблицу
- 17. Скопируйте подстроку одной колонки и скопируйте ее в другую
- 18. Mysql Скопируйте сериализованную таблицу из одной базы данных в другую
- 19. Как выбрать данные из таблицы и вставить в другую таблицу?
- 20. Как получить данные из таблицы и вставить в другую таблицу?
- 21. Скопируйте первую и вторую строки из таблицы в другую?
- 22. Скопируйте данные блоба из одной таблицы в другую по MySQL
- 23. Скопируйте уникальные данные из одной таблицы в другую
- 24. Загрузите информацию из одной таблицы mysql и вставьте ее в другую
- 25. Как обрабатывать данные из одной таблицы и передавать ее в другую таблицу в MySQL?
- 26. Скопируйте данные таблицы из хранимой процедуры
- 27. Скопируйте строку в другую таблицу и создайте новую временную метку
- 28. Postgresql вставляет данные таблицы в другую таблицу
- 29. как получить данные из таблицы sql и вставить ее в другую таблицу
- 30. Скопировать данные из одной таблицы SQL и вставить ее в другую таблицу
Почему PL/SQL, почему не прямой SQL 'insert into ... select ...'? –
Ваш выбор тегов подсказывает, что у вас уже есть ответ. Что вы ожидаете от нас? – APC
Да, я реализовал его с помощью BULK COLLECT и FORALL. Я хотел бы знать, есть ли способ, который я могу настроить, чтобы повысить эффективность. –