Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.049 c
1-1104161681
Дмитрий К.
2004-12-27 18:34
2005.01.16
Предпросмотр WEB страницы


14-1103799935
Ega23
2004-12-23 14:05
2005.01.16
Вопрос по C++. Скорее даже по среде VS


1-1104652605
Cheguevara
2005-01-02 10:56
2005.01.16
Как отменить последнее действие над картинкой


3-1103000716
rosl
2004-12-14 08:05
2005.01.16
index


3-1102874458
korvin
2004-12-12 21:00
2005.01.16
Парадокс с выходными данными в серверной процедуре





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский