Форум: "Базы";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
ВнизУскорить получение данных Найти похожие ветки
← →
anatolyk (2004-12-14 12:47) [0]Народ, привет! Подскажите, как ускорить вывод данных?
Я прочитал тут, что связь ADOTables через master-detail подтормаживает. Будут ли запросы (AdoQuery) отрабатывать быстрее?
Влияет ли на скорость тот факт, есть у запроса параметр, или нет (все через SQL.Text в явном виде)?
Схема примерно такая:
Table1 (Master)
- Table11
- Table12
- Table13 (Master)
- Table131
- Table132
В каждой таблице 10-30 тыс. записей. Для Master ыводится до 10 подчиненных записей.
← →
Ega23 © (2004-12-14 12:50) [1]Я бы убил за такое....
← →
anatolyk (2004-12-14 12:52) [2]Что делать. Я бы и сам застрелился. Но сделать надо именно так.
← →
Ega23 © (2004-12-14 13:10) [3]Но сделать надо именно так.
Ты уверен, что "именно так"? Возьми и на уровне запросов всё сделай...
← →
anatolyk (2004-12-14 13:19) [4]Я и спрашиваю, будет ли такая схема работать быстрее, если реализовать ее на запросах? В некоторых случаях у меня связанные таблицы работали быстрее.
← →
Ega23 © (2004-12-14 13:23) [5]Вместо ADOTable поставь ADOQuery.
Вообще, Table - вредный компонент...
← →
sniknik © (2004-12-14 14:13) [6]> Я и спрашиваю, будет ли такая схема работать быстрее, если реализовать ее на запросах?
смотря как реализовать...
если вместо ADOTable просто подставить ADODataSet с "full" запросом (select * from table1), то без разницы, ADOTable именно так и поступает (все качает на клиента)
если же над запросами подумать... и не выкачивать всего ненужного а из 30 тыс реально качать 10 записей, то скорость возрастет на порядки, естественно.
> В некоторых случаях у меня связанные таблицы работали быстрее.
ну так... в локальном варианте открытие таблици это просто открытие файла (без перекачек) а запрос даже в локальном подразумевает выборку... данные кудато перекачиваются/сохраняются... естественно.
но для клиент серверного приложения забудь о таблицах(компонентах).
← →
anatolyk (2004-12-15 10:23) [7]Есть ли компоненты, поддерживающие страничную (кусочную) передачу данных, например, как в Enterprise Manager-е самого MS SQL Servera?
← →
Anatoly Podgoretsky © (2004-12-15 12:23) [8]Это что у тебя 6 таблиц/гридов?
← →
sniknik © (2004-12-15 12:50) [9]anatolyk (15.12.04 10:23) [7]
не тем путем идете товаришщ! (зачем тебе данные на клиенте? обрабатывай на сервере, на клиент только нужное)
но неважно, по вопросу, ADO поддерживает кучу различных передач данных (при клиентском курсоре один тип, при серверном второй, + клиентский еше может работать в асинхронном блокирующем/неблокирующем режиме получения данных)
но боюсь ни один не оправдает твоих ожиданий, потому как вместе с достоинствами метода прилагаются и недостатки, а о них обычно начинающие не задумываются (вместо этого начинают поиски все могуших компонент ;), также как и о том почему приняты те или иные методы работы с определенными базами которые ты хочеш проигнорировать.
← →
Nikolay M. © (2004-12-15 13:00) [10]
> Есть ли компоненты, поддерживающие страничную (кусочную)
> передачу данных
АДО + серверный курсор.
Но дело не в кусочной передаче данных, а в ДНК :(
Суть проблемы совсем в другом, а ты пытаешься вылечить следствие, даже не разобравшись в причине :(
← →
Anatoly Podgoretsky © (2004-12-15 13:06) [11]все могуших компонент -> всемогуших компонент ;),
← →
anatolyk (2004-12-15 15:08) [12]To Anatoly Podgoretsky:
смысл моей задачи в следующем:
есть некий документ, состоящий из основной записи и прикрепленных списков. Данные с течением времени изменяются, история должна сохраняться, причем изменения могут затрагивать содержимое любого списка (списков). В любой момент времени нужно иметь данные о текущей редакции документа и истории изменений. Отсюда такая схема (с кучей гридов). Однако, попробую разобраться с серверным курсором.
← →
Danilka © (2004-12-15 15:53) [13]
> Влияет ли на скорость тот факт, есть у запроса параметр,
> или нет (все через SQL.Text в явном виде)?
Влияет.
Недавно переписал старый кусок кода, в пакете орокловом, там формировался дин. запрос, переписал с учетом параметров то-же самое, стало на полтора порядка быстрее. :))
Правда, у меня там в цикле много запросов было, у тебя поменьше будет, но все равно на скорость повлияет.
← →
Stanislav © (2004-12-15 16:44) [14]Конечно будет быстрее !
Дело в том что ADOTABLE в таком соединении подтягивает все записи с сервера и отбирает их на клиенте, а запрос тянет только то что нужно.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.035 c