Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.07.2010, 09:48
blsh blsh вне форума
Прохожий
 
Регистрация: 16.07.2010
Сообщения: 19
Репутация: 10
По умолчанию Ado и MS SQL

Доброе время суток!
Есть MS база, надо в нее, в режиме реального времени заливать данные из файлов .тхт.
Структура:
Barcode |IndexTo|MailDirect
RA145681496RU |0 |804
Файлы появляются еже минутно и в день заливается 300-500 тысяч записей. Через сутки(бывает и меньше) SQL сервер сходит с ума и зависает. Приходится перезагружать службы и приложение. Как решить проблему????
Для работы с базой использую АДО компоненты.
Ответить с цитированием
  #2  
Старый 29.07.2010, 09:56
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

а если попробывать грузить файлы не на прямую в базу а через буфер (вспомогательную таблицу), а из нее грузить в основную например 1 раз в час. Или может грузить не каждый файл по отдельности а например сразу по 100 штук.
__________________
Последний раз редактировалось Admin, Сегодня в 10:32.
Ответить с цитированием
  #3  
Старый 29.07.2010, 10:35
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Цитата:
Сообщение от friz
а если попробывать грузить файлы не на прямую в базу а через буфер (вспомогательную таблицу), а из нее грузить в основную например 1 раз в час. Или может грузить не каждый файл по отдельности а например сразу по 100 штук.
Вроде ж автор написал, что надо в "реальном времени".
blsh, ну покаж как эти файлы обрабатываются.
Ответить с цитированием
  #4  
Старый 29.07.2010, 10:40
Kapitoshka438 Kapitoshka438 вне форума
Начинающий
 
Регистрация: 09.11.2009
Сообщения: 145
Репутация: 238
По умолчанию

Может будет лучше, если файлы будут в формате xml. В MSSQL очень удобная и быстрая работа с ними. У нас в день на сервера принимаются десятки тысяч записей в разные таблицы. Загрузка идет каждые 20 минут. Все отлично работает, ничего не падает. {поплевал и постучал по дереву}
Ответить с цитированием
  #5  
Старый 29.07.2010, 11:19
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Возможно вы на каждую порцию транзакции применяете, вот у вас журнал и растет по дурному. Конечно без транзакций стремно, но для эксперимента можно попробовать, можно еще сам журнал задать фиксированный возможно поможет. Можно делать еще временный ежесуточный файл изменений, и вливать в основную БД из него раз в сутки.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #6  
Старый 29.07.2010, 11:49
blsh blsh вне форума
Прохожий
 
Регистрация: 16.07.2010
Сообщения: 19
Репутация: 10
По умолчанию

Код:
ADOConnection1.BeginTrans;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='INSERT INTO Barcodes_File(Barcode, Index_To, Country, Files_Name, DateTimes) SELECT '+QuotedStr(sID)+','+QuotedStr(sIndexTo)+','+QuotedStr(sMailDer)+','+QuotedStr(FileName)+','+QuotedStr(DateTimeToStr(Now))+' WHERE NOT EXISTS (SELECT 1 FROM Barcodes_File WHERE Barcode = '+QuotedStr(sID)+' and Files_Name = '+QuotedStr(FileName)+')';

ADOQuery1.ExecSQL;
ADOConnection1.CommitTrans;
вот так я посылаю запрос к базе
Ответить с цитированием
  #7  
Старый 29.07.2010, 13:01
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Я бы вам рекомендовал переписать весь этот блок как хранимку, т.к. я невижу в этом коде ничего, что-бы требовало его генерацию на клиенте.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 29.07.2010 в 13:06.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:45.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025