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

Откуда:
Сообщений: 54
Есть офис с сервером "SQL SERVER 2005". Есть также около десяти магазинов подключенных к этому серверу. После закрытия магазинов они скидывают продажи на сервер примерно в одно и тоже время программой, написанной на Дельфи. Вот команда, с помощью которой это выполняется:

BULK INSERT Sale FROM MyTextFile WITH (FIELDTERMINATOR='|',CODEPAGE=437,BATCHSIZE=1000,ROWTERMINATOR='\n')

Текстовый файл имеет размер 200-250 kb и 7-8 тыс. строк. Этот файл создается в магазине, копируется на сервер и там по указанной выше команде записывается на сервер.
Когда каждый магазин обрабатывает продажи отдельно, то никаких проблем не возникает. Но, если два магазина одновременно закидывают на сервер свои текстовые файлы и сервер пытается их обработать, или возникает ошибка, или данные одного из магазинов остаются необработанными.
Что тут можно сделать, чтобы как-то организовать очередь на сервере или отрегулировать это все какими-то параметрами.
Наверняка это часто встречающийся случай. Буду признателен за любой совет.
14 ноя 13, 17:03    [15130032]     Ответить | Цитировать Сообщить модератору
 Re: BULK INSERT одновременно от нескольких пользователей  [new]
Гость333
Member

Откуда:
Сообщений: 3683
zago
возникает ошибка

Покажите текст ошибки.
14 ноя 13, 17:12    [15130093]     Ответить | Цитировать Сообщить модератору
 Re: BULK INSERT одновременно от нескольких пользователей  [new]
zago
Member

Откуда:
Сообщений: 54
К сожалению не сделал раньше PrintScreen.
Но ругается на то, что строка якобы слишком длинная для BULK INSERT.
14 ноя 13, 18:09    [15130466]     Ответить | Цитировать Сообщить модератору
 Re: BULK INSERT одновременно от нескольких пользователей  [new]
Glory
Member

Откуда:
Сообщений: 104760
zago
Но ругается на то, что строка якобы слишком длинная для BULK INSERT.

значит так и есть. на момент выполнения команды
14 ноя 13, 18:19    [15130540]     Ответить | Цитировать Сообщить модератору
 Re: BULK INSERT одновременно от нескольких пользователей  [new]
zago
Member

Откуда:
Сообщений: 54
Нет, в оригинале текстовый файл на компе пользователя всегда нормальный.
Я заметил, что после ошибки последняя строка текстового файла на сервере дополнятся огромным количеством пробелов и это случается только при одновременном выполнении команды BULK INSERT на сервере.
15 ноя 13, 09:35    [15133506]     Ответить | Цитировать Сообщить модератору
 Re: BULK INSERT одновременно от нескольких пользователей  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2396
zago
Нет, в оригинале текстовый файл на компе пользователя всегда нормальный.
Я заметил, что после ошибки последняя строка текстового файла на сервере.


так у вас файлы сбрасываются на сервер или BULK INSERT идет с клиентского компа?
может проблема при передаче файлов? BULK INSERT их не меняет
присылаемые файлы имеют одинаковое имя?
15 ноя 13, 09:49    [15133572]     Ответить | Цитировать Сообщить модератору
 Re: BULK INSERT одновременно от нескольких пользователей  [new]
Glory
Member

Откуда:
Сообщений: 104760
zago
Нет, в оригинале текстовый файл на компе пользователя всегда нормальный.

Вы это как проверили _на момент_ запуска команды то ?

zago
Я заметил, что после ошибки последняя строка текстового файла на сервере дополнятся огромным количеством пробелов и это случается только при одновременном выполнении команды BULK INSERT на сервере.

BULK INSERT ничего, кроме чтения, с файлом не делает
15 ноя 13, 10:07    [15133668]     Ответить | Цитировать Сообщить модератору
 Re: BULK INSERT одновременно от нескольких пользователей  [new]
zago
Member

Откуда:
Сообщений: 54
Перед выполнением текстовый файл сбрасывается на сервер.
Может ли файл меняться таким странным образом во времея передачи?
Кроме того это происходит только когда создается "очередь" на выполнение BULK INSERT.
15 ноя 13, 12:49    [15135163]     Ответить | Цитировать Сообщить модератору
 Re: BULK INSERT одновременно от нескольких пользователей  [new]
Glory
Member

Откуда:
Сообщений: 104760
zago
Перед выполнением текстовый файл сбрасывается на сервер.
Может ли файл меняться таким странным образом во времея передачи?

Вот откуда вы знаете, что файл полностью передан прежде, чем запускаете BULK INSERT ?
15 ноя 13, 12:51    [15135178]     Ответить | Цитировать Сообщить модератору
 Re: BULK INSERT одновременно от нескольких пользователей  [new]
zago
Member

Откуда:
Сообщений: 54
Проверяю, что файл на сервере существует. Но размерность или количество записей не проверяю.
В то же вермя, сколько раз просматривал этот файл после ошибки, там есть все записи, просто в конце большое кол-во пробелов.
16 ноя 13, 09:18    [15140804]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить