|
|
|
10тысяч записей! - разве это много????!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
Привет населению!!!!!!!! Обьясните, пожалуйста, почему так медленно всё происходит? Суть: Мне нужно сделать запрос из Базы по нескольким критериям, ну вот, я его делаю. Но в базе для экономии размера предусмотрен словарик. То-есть в нужном поле таблицы вместо текста стоит число: id - определения из словаря. В общем, получив запрос, теперь мне нужно заменить эти цыферки, на то, что они означают (по словарю). А так как в Делфи запрос, это обычная таблица, только она создаётся в run-time и отличается она от обыкновенной таблицы вшитым свойством read-only, то для того, чтобы изменить полученные записи, их нужно сначала скопировать в простую таблицу, а потом менять. ну вот так я и делаю Ну если делать "хороший" запрос (ну чтобы результатом было ~500 записей)- не заметно, а если сделать запрос, чтобы в таблицу попали все 10000 записей - работает долговато (у меня 3 сек. на Duron800), так это я только копирую с запроса в таблицу, а теперь ещё нужно заменить значения (с цыфер на текст) в 9 столбцах: 10000*9 и того ещё 90000 замен - это где-то опять будет ~3 сек. Может я что не то делаю? Может есть способ по-лучше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2003, 03:28 |
|
||
|
10тысяч записей! - разве это много????!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
я не понял, ты юзаешь компонент TIBTable??? если так, то это и есть ответ на твои тормоза... используй Query... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2003, 03:36 |
|
||
|
10тысяч записей! - разве это много????!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
Если тебе нужен модифицируемый запрос, чтоб потом можно было прям в гриде править, то это легко реализуется в FIBPlus (но он платный, для русских около 19$, деньги не большие, зато продукт просто чудо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2003, 04:02 |
|
||
|
10тысяч записей! - разве это много????!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
> Если тебе нужен модифицируемый запрос.... > ...около 19$... Можно и бесплатно. Переходи на трёхзвенку. Программировать клиентское приложение, в этом случае одно удовольствие, модифицируется ВСЁ что угодно, абсолюнто любой DataSet. К тому-же, если в Query надо поменять порядок сортировки, на двух-звенке придётся менять директиву ORDER BY и выполнять запрос к серверу заново и ждать. На 3-х звенке в TClientDataSet это произойдёт сразу, как только пожелаешь, сервер БД и спрашивать не надо!!! Если у кого-то ужасает сложность перехода на 3-х звенную архитектуру, какие-либо "непонятки" или "раздутые" проблемы тех, у кого неполучилось - спрашивайте научу. У меня проблем нет. Выберите форум и тему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2003, 08:37 |
|
||
|
10тысяч записей! - разве это много????!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
>Zmeishe Заради ORDER BY делать трехзвенку ?! :) Если использовать FIB, то там есть локальная сортировка. >DenDer Если работаешь через BDE, то жми F1 на свойство RequestLive и CashedUpdates класса TQuery. Если используешь библиотеки прямого доступа (IBX/FIB), то смотри свойства SelectSQL и т.д. класса T(pF)IBDataSet. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2003, 11:33 |
|
||
|
10тысяч записей! - разве это много????!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
to Zmeishe А где взять бесплатный FIBPlus? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2003, 14:55 |
|
||
|
10тысяч записей! - разве это много????!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
Во первых проверь: 1. Все ли индексы и форинкеи ты сделал на таблицы справочники. 2. Как ты вытягиваеш данные из таблицы, т.е. есть по критериям индексы. 3. Полностью согласен с первым ответчиком никаких Table'ов лучше запрос в Query либо Хранимая процедура и Query. Думаю этим проблема и исчерпывается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2003, 15:00 |
|
||
|
10тысяч записей! - разве это много????!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
Во первых проверь: 1. Все ли индексы и форинкеи ты сделал на таблицы справочники. 2. Как ты вытягиваеш данные из таблицы, т.е. есть по критериям индексы. 3. Полностью согласен с первым ответчиком никаких Table'ов лучше запрос в Query либо Хранимая процедура и Query. Думаю этим проблема и исчерпывается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2003, 15:00 |
|
||
|
10тысяч записей! - разве это много????!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
>А где взять бесплатный FIBPlus? Я имею ввиду не бесплатный FIBPlus, а переход на 3-х звенку. Я использую IB-компоненты исключително из стандартной поставки Билдера. Они нужны мне только как контейнеры для хранения текста SQL для SELECT, INSERT, UPDATE, DELETE. Вся кухня по модификации данных у меня на третьем звене. Таких проблем по модификации данных в DBGrid или где ещё, о которых пишут в этих форумах про IBX, FIB, BDE, ADO для меня просто не существует. Мне иной раз смешно когда пишут, что это типа DBGrid кривой. Если кто-то считает, что для маленькой задачи не рационально делать 3-х звенку, то я и не собираюсь Вас переубеждать и тем более спорить. Что касается меня, то мне необычайно удобно с 3-х звенкой и я не знаю и 80% тех проблем, что на 2-х звенке с IBX, FIB, BDE, ADO. Хотя я их тоже использую (IB для IB и ADO для MS-SQL), но только как контейнеры, т.е. для работы с БД, а не для визуализации или модификации данных со стороны пользователя. Вот так! Окончательный выбор всё равно за Вами, друзья. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2003, 17:10 |
|
||
|
10тысяч записей! - разве это много????!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
Да уж про 3-звенку я начитался в форуме по Delphi... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2003, 18:30 |
|
||
|
10тысяч записей! - разве это много????!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
>StarWind Да, выходит, что так - я юзал TIBTable, а вот как прикрутить TQuery, я не знаю - от же из BDE, а я работаю с IB. >Johnmen Я пытался получить данные через этот компонент TIBDataSet, ну он работает - запрос получается, а когда хочу изменить данные в нём - Cannot modify a read-only dataset. В компонентах IB отсутствует свойство RequestLive - поэтому, просто сказать компоненту, что мол: "Дружище - пора менятся!!!!!!" я не могу (может и могу, только не знаю как) . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2003, 03:28 |
|
||
|
10тысяч записей! - разве это много????!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
вообще, я использую только 3 компонентa, TFIBDataSet, TFIBTRANSACTION, TFIBDATABASE гриды свои, нафига дбгрид нужен? как мне нужно отобразить данные, так я их и отоброжаю, больше чем поместится на экране данных не выбираю... производительность не страдает, на удобство пока жалоб небыло... в общем, это я к тому, что все эти наворотченные компоненты, дают мало толку, в основном в стандартных ситуацыях, очень сильно ограничивают возможности, сужают мышление и отучают от sql ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2003, 11:39 |
|
||
|
10тысяч записей! - разве это много????!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
народ для чайника3-х звеннуа архитектура, что да как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2003, 19:26 |
|
||
|
10тысяч записей! - разве это много????!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
3-х звенка это на любителя(профессионала). вообще, суть не в трех звеньях, а в многомодульности. логика работы твоей системы разбивается на три крупных блока: клиент(интерфейс) - среднее звено(бизнеслогика) - сервер бд(хранения данных). в обычных системах среднее звено распределено (в разных пропорциях, в зависимости от реализации) между крайними звеньями. часть бизнеслогики выпоняется на клиенте(рассчет формул, связки объектов системы) а часть на сервере(ХП, транзакции, ссылочная целостность). вообще мне кажется, что чем больше в системе модулей тем она потенциально опасней к сбою, но гибче в настройке, масштабировании и пр. вполне можно представить себе и четырех звенную систему. клиент(браузер)-вебсервер-серверлогики-сервербд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2003, 21:55 |
|
||
|
10тысяч записей! - разве это много????!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
Zmeishe, дай свой емайл, или мне напиши (у меня емайл указан в профиле). Есть несколько вопросов по теме 3-х звеньев. Если есть время, конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2003, 07:51 |
|
||
|
10тысяч записей! - разве это много????!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
бальшое спасибо! за просвещение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2003, 08:28 |
|
||
|
10тысяч записей! - разве это много????!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
DenDer Сорри выпустил пару символов с названием компонента переходи на TIBQuery , такой есть на палитре InterBase . при переходе особых познаний не потребуется. В свойстве SQL прописываешь скрипт, подключаешь компонент UpdateSQL и наслаждаешься жизнью. Все остальное будет работать точно также ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 03:16 |
|
||
|
10тысяч записей! - разве это много????!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
>StarWind Спасибо за совет, только я вот этим TIBQuery и пользуюсь. Да я уже то что мне нужно сделал по-другому (я просто подменяю текст в Гриде), може и тупо, зато работает быстро. Но был бы благодарен, если бы мне обьяснили как прикрутить UpdateSQL к чему-нибудь - я пробывал, у меня ничего толькового не получается - оно мне только данные партачит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 03:56 |
|
||
|
10тысяч записей! - разве это много????!!!!!!!!
|
|||
|---|---|---|---|
|
#18+
в свойстве UpdateObject указыываешь объект IBUpdateSQL. а в последнем в соответствующих полях пишешь скрипты на изменение данных и все... единственное, список команд в этих полях ограничевается набором Insert, Update, Delete, Select ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 04:40 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32245380&tid=1580075]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
82ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 405ms |

| 0 / 0 |
