|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.04.2017, 17:12 | #1 |
Пользователь
Регистрация: 05.04.2017
Сообщений: 11
|
Ускорение Update
База на FireBird 2.1, клиент написан на Делфи 2007.
Задача. Имеются 2 таблицы TX и ТХ2 с одинаковым полем X (varchar (8)) В таблице ТХ имеется имеется поле заполненное Y. Нужно сравнить значение ТХ.Х=ТХ2.Х и заполнить поле таблицы ТХ2.Y значениями ТХ1.Y. В двух таблицах по 100 тыс записей. Прямым перебором долго. Помогите , плиииз! |
05.04.2017, 17:19 | #2 |
Пользователь
Регистрация: 05.04.2017
Сообщений: 11
|
Пригоден ли метод Locate?
Использую DATASET Последний раз редактировалось pirireys; 05.04.2017 в 17:25. |
05.04.2017, 17:47 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
каким перебором?!!
Для таких целей нужно использовать SQL если поле X уникальное в таблице TX просто один запрос UPDATE примерно такого вида Код:
|
05.04.2017, 17:56 | #4 |
Пользователь
Регистрация: 05.04.2017
Сообщений: 11
|
прямым перебором долго, до 14 часов длится
|
05.04.2017, 17:56 | #5 |
Пользователь
Регистрация: 05.04.2017
Сообщений: 11
|
в ТХ значения поля х уникальные, а в ТХ2 их может быть сколь угодно
поэтому SQL не подходит. Медленно получается. С помощью делфи как то можно это сделать? Как использовать индексы? Последний раз редактировалось pirireys; 05.04.2017 в 17:59. |
05.04.2017, 18:03 | #6 |
Пользователь
Регистрация: 05.04.2017
Сообщений: 11
|
Может я неправильно объяснил.
Две таблицы содержат одинаковые поля Х, но разные значения записей. По значению поля Х первой таблицы , надо выбрать записи с теми же значениями и записать в другое поле Y второй таблицы, значения поля Y первой таблицы. А проблема заключается в скорости. В SQL я знаю как это сделать, но это слишком медленно. Поэтому спрашиваю, можно ли в делфи используя индексы ускорить процесс? Последний раз редактировалось pirireys; 05.04.2017 в 18:06. |
05.04.2017, 18:16 | #7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Навряд ли, все равно потом обновления в базу записывать. Лучше в таблицах индексы сделать по полю x и update
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
05.04.2017, 18:19 | #8 |
Пользователь
Регистрация: 05.04.2017
Сообщений: 11
|
|
05.04.2017, 18:21 | #9 |
Пользователь
Регистрация: 05.04.2017
Сообщений: 11
|
|
05.04.2017, 18:24 | #10 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Пример чего? Создания индексов для таблицы базы данных? Смотри справку по SQL
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Центростремительное ускорение | Niro | Помощь студентам | 11 | 11.01.2013 20:32 |
Ускорение программы С++ | rUs_LAN | Помощь студентам | 4 | 16.08.2012 13:57 |
Ускорение времени | rinasmichael | Win Api | 3 | 10.11.2011 09:15 |
Ускорение компиляции | jetyb | Помощь студентам | 4 | 13.09.2011 23:38 |
ускорение виндовс | voland123454321 | Windows | 22 | 04.09.2010 12:16 |