|
Перенос данных из MS SQL сервера
|
|||
---|---|---|---|
#18+
Всем доброго времени суток. Есть такая задача, нужно перенести данные из MS SQL Server в другую базу. Структуру таблиц MS SQL Server запрашиваю из его метаданных. По ним формирую скрипты для создания таблиц в другой базе (например PostgreSql). Так вот, сейчас не могу определится как лучше сделать перенос записей. Если задачу решать в лоб, запросом всех данных из таблицы, то это может привести к печальным последствиям. Мне бы хотелось переносить данные скажем по 10К записей. В связи с чем вопрос, как это сделать, если в таблице из которой копируются данные, может не оказаться нормального ключа по которому можно было сделать разбивку данных? Для передачи данных планирую использовать Dapper (хотя думаю, наверное лучше от него отказаться в пользу, формирования прямых SQL команд, т.е. получаю данные из MS SQL, и на основании их формирую команды INSERT в другую базу). Так выглядит решение в лоб (загрузить все данные из таблички и вставить в другую базу): Загрузка данных: Код: c# 1. 2. 3. 4.
Вставка данных: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Модератор: Учимся использовать тэги оформления кода - FAQ ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 08:59 |
|
Перенос данных из MS SQL сервера
|
|||
---|---|---|---|
#18+
mikola1982нужно перенести данные из MS SQL Server в другую базу 1) репликация 2) это задача админская, поэтому лучше средствами админа (бэкап, дампы, репликация, зеркало, link, sql. Зачем через клиента перегонять базы? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 13:43 |
|
Перенос данных из MS SQL сервера
|
|||
---|---|---|---|
#18+
mikola1982то это может привести к печальным последствиям. Мне бы хотелось переносить данные скажем по 10К записейможно поподробнее вот это место? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 16:03 |
|
Перенос данных из MS SQL сервера
|
|||
---|---|---|---|
#18+
Petro123, Наш админ посмотрел, почесал затылок, сказал нет таких средств, что бы перегнать средствами базы, все таблицы и данные из MS SQL в PostgreSql. Где об этом можно почитать? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2019, 08:28 |
|
Перенос данных из MS SQL сервера
|
|||
---|---|---|---|
#18+
Shocker.Promikola1982то это может привести к печальным последствиям. Мне бы хотелось переносить данные скажем по 10К записейможно поподробнее вот это место? о чем именно? Про то что если загрузить в память 10КК записей, то сервак может стать колом? Или про пакетную обработку данных? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2019, 08:30 |
|
Перенос данных из MS SQL сервера
|
|||
---|---|---|---|
#18+
Select * from table это не проблема для MSSQL, даже при миллионе записей в table. Проблема потом это записать в БД-получатель. Через insert это будет очень медленно. В MS SQL для такого есть bulk insert В постгресе должно быть что-то похожее. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2019, 08:38 |
|
Перенос данных из MS SQL сервера
|
|||
---|---|---|---|
#18+
mikola1982Где об этом можно почитать?рядом ветка постгри. Выше сказали что труднее всего писать в базу а не читать. Значит надо сначала спросить у профи в той ветке. Как и в каком формате перегнать базу в постгри. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2019, 09:22 |
|
Перенос данных из MS SQL сервера
|
|||
---|---|---|---|
#18+
Сохраняете данные из MS SQL утилитой bcp в csv-файл, потом загружаете данные в PostgreSQL командой COPY. И не надо гонять данные через клиента, ибо изврат. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2019, 10:46 |
|
Перенос данных из MS SQL сервера
|
|||
---|---|---|---|
#18+
MegabyteСохраняете данные из MS SQL утилитой bcp в csv-файл, потом загружаете данные в PostgreSQL командой COPY. +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2019, 11:03 |
|
Перенос данных из MS SQL сервера
|
|||
---|---|---|---|
#18+
MegabyteСохраняете данные из MS SQL утилитой bcp в csv-файл, потом загружаете данные в PostgreSQL командой COPY. И не надо гонять данные через клиента, ибо изврат. спасибо. буду смотреть в сторону этих команд. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2019, 06:06 |
|
Перенос данных из MS SQL сервера
|
|||
---|---|---|---|
#18+
Почему хочу программой, потому что для работы нужно только указать строку подключения к одной базе и строку подключения к другой базе. Плюс пользователей базы. При этом программа может быть запущена на обычном рабочем ПК, где нет большого объема ОЗУ и дискового пространства. Дальше запускаем программу, она смотрит структуру базы в MS SQL сервере, создает сама точно такую же структуру в PgSQL и сама заливает туда данные. Понятно, что это будет работать долго на больших объемах, но эти издержки меня устраивают. Хотя понимаю, что можно делать все то же самое программой с помощью утилит баз. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2019, 06:21 |
|
Перенос данных из MS SQL сервера
|
|||
---|---|---|---|
#18+
И да понятно, что потом админу нужно будет создать индексы и сложные ограничения. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2019, 06:57 |
|
Перенос данных из MS SQL сервера
|
|||
---|---|---|---|
#18+
mikola1982, Делай в программе. Только готовить скрипт или файл который перекидывается на шару с бд и уже там запускается. Твой клиент и драйвер не использует ничего у себя на машине. В этом основное отличие админки. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2019, 09:02 |
|
|
start [/forum/topic.php?fid=17&fpage=4&tid=1349138]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
62ms |
get topic data: |
15ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 251ms |
total: | 416ms |
0 / 0 |