Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Заливка больших объемов данных  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
Поделитесь опытом, пжл.

Интересует, кто как заливает большие объемы данных в БД без использования BULK INSERT? Мне довелось сталкиваться с такой задачей и в целом ее решил так: расшариваем папку на клиентском компьютере, из нее делаем BULK INSERT на сервере. Однако, как показал опыт, такая схема работает надежно только в сети с доменами. Встречались такие глюки, когда папка расшаренная даже локально не была доступна ни SQL-серверу, ни даже собственно самому администратору компьютера.

С позаписным занесением плохо то, что очень медленно, но надежнее и + можно отобразить прогресс выполнения операции. Но скорость не выдерживает критики.

Какие есть решения?
30 авг 09, 15:27    [7594801]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36828
Пишите клиентской приложение и заливайте балком через OLEDB на здоровье.
30 авг 09, 16:46    [7594876]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
Гавриленко Сергей Алексеевич
Пишите клиентской приложение и заливайте балком через OLEDB на здоровье.
А если сервер и клиентское приложение находятся на разных компьютерах?
30 авг 09, 16:51    [7594883]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных  [new]
B0rG
Member

Откуда: столичный город кудаблин
Сообщений: 619
хммм... оставив в стороне вопрос почему бы файлик с данными не положить серверу на собственный диск, скажу что никаких проблем в сети без доменов с заливкой из шаренной папки быть не должно. Единственное, что там может мешать - аккаунт под которым крутится сервак (обычно NT AUTHORITY\NETWORKSERVICE) не имеет прав на эту шару. Решается очень быстро.

К тому же зачем обязательно INSERT BULK, когда можно сделать и через bcp с любого компа с установленными тулзами. Там же можно и юзера с паролем прописать...


Cheers
Pete
30 авг 09, 18:08    [7594995]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36828
Senya_L
Гавриленко Сергей Алексеевич
Пишите клиентской приложение и заливайте балком через OLEDB на здоровье.
А если сервер и клиентское приложение находятся на разных компьютерах?
И? По сетке нормально льется. Правда лучше иметь сетку > 100 Мб/сек.

Сообщение было отредактировано: 30 авг 09, 18:13
30 авг 09, 18:13    [7595004]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных  [new]
Нектотам
Guest
Senya_L
Какие есть решения?

Мне нравится SQLXMLBulkLoad. С одной стороны это готовый инструмент, не надо с голым oledb заморачиваться. А если изначально данные в xml есть, то вообще прекрасно. С другой стороны расшаренная папка нужна только если использовать режим транзакционности или заливка "в открытое соединение".
Примеры тут.
30 авг 09, 19:23    [7595133]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
Гавриленко Сергей Алексеевич
Senya_L
Гавриленко Сергей Алексеевич
Пишите клиентской приложение и заливайте балком через OLEDB на здоровье.
А если сервер и клиентское приложение находятся на разных компьютерах?
И? По сетке нормально льется. Правда лучше иметь сетку > 100 Мб/сек.
Сергей, Вы видимо невнимательно прочитали мой исходный пост. С заливкой через сетевые ресурсы есть проблемы, увы. Я потому и спросил вобщем-то.
Нектотам
Senya_L
Какие есть решения?

Мне нравится SQLXMLBulkLoad. С одной стороны это готовый инструмент, не надо с голым oledb заморачиваться. А если изначально данные в xml есть, то вообще прекрасно. С другой стороны расшаренная папка нужна только если использовать режим транзакционности или заливка "в открытое соединение".
Примеры тут.
Спасибо за подсказки. Мне было изначально интересно укажет ли мне кто на XML, потому как это вертелось в голове, но не был уверен в перспективности. :) Ссылки посмотрю, спасибо. Сейчас пока интернет здесь неважный.
30 авг 09, 21:29    [7595332]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36828
Senya_L
Гавриленко Сергей Алексеевич
Senya_L
Гавриленко Сергей Алексеевич
Пишите клиентской приложение и заливайте балком через OLEDB на здоровье.
А если сервер и клиентское приложение находятся на разных компьютерах?
И? По сетке нормально льется. Правда лучше иметь сетку > 100 Мб/сек.
Сергей, Вы видимо невнимательно прочитали мой исходный пост. С заливкой через сетевые ресурсы есть проблемы, увы. Я потому и спросил вобщем-то.
Я долго думал, как может наличие/отсутствие доменов или доступность/недоступность сетевых папок влиять на заливку через oledb. Так и не придумал.
31 авг 09, 01:15    [7595611]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных  [new]
Нектотам
Guest
Гавриленко Сергей Алексеевич
Я долго думал, как может наличие/отсутствие доменов или доступность/недоступность сетевых папок влиять на заливку через oledb. Так и не придумал.
Возможно, что Senya_L не знает о том, "Как выполнить массовое копирование данных с использованием интерфейса IRowsetFastLoad (OLE DB)".
31 авг 09, 06:09    [7595679]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
Нектотам
Гавриленко Сергей Алексеевич
Я долго думал, как может наличие/отсутствие доменов или доступность/недоступность сетевых папок влиять на заливку через oledb. Так и не придумал.
Возможно, что Senya_L не знает о том, "Как выполнить массовое копирование данных с использованием интерфейса IRowsetFastLoad (OLE DB)".
Именно! Еще раз спасибо.
31 авг 09, 09:48    [7595994]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
Нектотам
Гавриленко Сергей Алексеевич
Я долго думал, как может наличие/отсутствие доменов или доступность/недоступность сетевых папок влиять на заливку через oledb. Так и не придумал.
Возможно, что Senya_L не знает о том, "Как выполнить массовое копирование данных с использованием интерфейса IRowsetFastLoad (OLE DB)".
Я так понял этот интерфейс только в 2008-м?
1 сен 09, 09:34    [7601079]     Ответить | Цитировать Сообщить модератору
 Re: Заливка больших объемов данных  [new]
Нектотам
Guest
Senya_L
Я так понял этот интерфейс только в 2008-м?

Нет. Это и в 2000-м работало, просто не посмотрев ссылку на свежий бол кинул.
вот 2000.
Просто это доступ не через ADO, а через OLE DB. Надо сказать, что голый OLE DB досточточно муторный способ работы с MS SQL.
1 сен 09, 09:55    [7601214]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить