Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/23: Рейтинг темы: голосов - 23, средняя оценка - 4.52
maksym78

Перенос большого количества информации на прилинкованный сервер

21.08.2009, 18:05. Показов 4641. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите разобраться с проблемой:
есть mssql сервер "local" и база base1
есть удаленный прилинкованный mysql "remote" сервер и база на нем base2
периодически (с помощью job) нужно выборки из mssql базы base1 заносить в mysql базу base2

В связи с этим несколько вопросов

1. на base2 таблицы должны содержать только последние данные.
Для этого нужно каждый раз
T-SQL
1
truncate table table2
Но команда
T-SQL
1
select * from openquery(REMOTE,'truncate table table2')
не работает скорее всего потому что я не знаю как правильно эту команду написать ) Как очистить таблицу на прилинкованном сервере?

Поэтому приходится делать
T-SQL
1
delete from openquery(REMOTE,'select * from table2' where id>0) where id>0
где id автоинкримент в таблице
а потом уже insert
Строк довольно много и я могу в клиенте наблюдать как при удалении количество строк в таблице плавно сокращается. Очень плавно и долго. Можно ли как то ускорить процесс?
Что бы таблица на удаленном linked сервере или мгновенно очищалась или дропалась и создавалась новая с тем же именем и данные писались бы уже в новую. Если можно подскажите как это все сделать через openquery .

2. Теперь по поводу процесса собственно переноса данных на linked сервер. Выборка по базе mssql имеет формат 1 поле "ширина" и десятки тысяч срок "высота". Фактически одномерный массив с боольшим количеством элементов.
Данные вставляются конструкцией

T-SQL
1
2
3
delete from openquery(REMOTE,'select * from table2') where id>0
insert into openquery(REMOTE,'select * from table2')
SELECT field1 from table1 -- здесь десятки тысяч строк
Этот запрос у меня может часами выполняться, как я понимаю из за того что каждую строку он отдельно вгоняет. Я хочу узнать как перевести полученный одномерный массив в строковую переменную с разделитлем и потом как большое содержимое но содержимое 1 строки перенести на linked сервер

попробую нарисовать
вот как выглядит выборка щас

data 1
data 2
data 3
...
data n

а я хочу узнать как средствами sql перевести ее в вид
data 1, data 2, data 3,...,data n
а потом одной строкой перенести на удаленный сервер.

Спасибо
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.08.2009, 18:05
Ответы с готовыми решениями:

Обработка большого количества информации
Здравствуйте! Хотелось бы узнать у профессионалов, как можно с помощью средств Qt эффективно решить задачу обработки большого количества...

DLL и Передача большого количества Информации
Всем привет! У меня следующий вопрос! Как лучше передать большое количество информации в DLL и уже в DLL создать таблицу? То есть как...

Перенос большого количества данных из таблицы в текстовый документ
День добрый! Подскажите, пожалуйста, как программно создать текстовый файл с данными из таблицы в определенной папке с определенным...

4
 Аватар для Airhand
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
25.08.2009, 12:35
Два варианта:
1. Не удалять все записи, а только добавлять новые.
2. А чего ты именно в SELECT пытаешся затранкейтить таблицу ? Попробуй в других запросах.
0
maksym78
25.08.2009, 15:58
Цитата Сообщение от Airhand Посмотреть сообщение
Два варианта:
1. Не удалять все записи, а только добавлять новые.
2. А чего ты именно в SELECT пытаешся затранкейтить таблицу ? Попробуй в других запросах.
не пройдет ни 1 ни 2.
не я вычитал что truncate table на линкед сервер никак не сделать.
предварительно удалять обязательно нужно, да и mysql очень быстро начинает тормозить при увеличении кол-ва записей.

у меня щас новые 2 варианта :
1.может можно както удалять и создавать таблицу на линкед срвере через опенквери?
2. Может можно на mysql сервере сохранить как то локальную процедуру и в нужный момент просто вызывать ее?
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 3
03.10.2013, 09:26
Найди informatica power center и кидай данные там как хочешь чем хочешь делай вообще с ними все что угодно можно даже по часам там ограничеть когда че запускаться будет и все автоматизировать ....
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
03.10.2013, 11:51
Вместо
T-SQL
1
delete from openquery(REMOTE,'select * from table2' where id>0) where id>0
можно
T-SQL
1
exec('truncate table2') at REMOTE;
Практически в каждой СУБД есть средство пакетной загрузки данных. Выясните есть ли таковое в MySQL и попробуйте им воспользоваться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.10.2013, 11:51
Помогаю со студенческими работами здесь

Программа тормозит при записи большого количества информации в RichTextBox
Собственно вопрос в названии темы. И еще один момент. Я делаю парсинг сайта, а результат пишу в RichTextbox. Спустя буквально секунд 5...

Получение большого количества информации с разнообразных интернет ресурсов в образовательных целях
Всех хай, стоит задача сделать не большой проектик в качестве обучения. Тема его большое количество данных в нете и приходится долго в...

Компьютер как для обработки большого количества информации, так и для игр
Добрый день. Имею желание собрать системный блок. Бюджет: 35-45 тысяч рублей. Особо не разбираюсь в железе, поэтому прошу помощи у...

Задача по теории информации. Расчет наибольшего количества информации
На радиорелейной линии для передачи символов 0 и 1 используются радиоимпульсы мощностью 1 и 10 Вт соответственно. Для нормальной работы...

Теория информации. Измерение количества информации
Всем привет, есть вот такое вот задание, очень интересное, единственный нюанс, сделать нужно очень срочно, буду сегодня в ночь делать, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru