Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Что использовать вместо RELATION?
|
|||
|---|---|---|---|
|
#18+
Суть задачи: В одной DBF есть два поля t1.kod1 и t1.kod2. В зависимости от условия берется то или другое поле IIF(t1.kod1=s,t1.kod1,t1.kod2) и к нему по RELATION привязывается запись из другой таблицы t2.kod (один к одному). Когда делаю так, и в грид засовываю t1 с записями из t2, то все бегает моментально. Понадобилось все это с этими же условиями загнать в третью таблицу и потом в грид. Использую SCAN t1 сортированный по t1.kod1, SEEK t2.kod и по INSERT добавляю в t3. Вопрос в том, что теперь это все работает раз в 10 медленнее. Может быть я принципиально неправильно подхожу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2004, 14:26 |
|
||
|
Что использовать вместо RELATION?
|
|||
|---|---|---|---|
|
#18+
Для такого простого случая, для формирования временной таблицы надо использовать Select-SQL или Local View. Но вообще-то, надо посмотреть на код формирования этой временной таблицы. Есть масса уловок позволяющих оптимизировать (читай "ускорить") выполннение. Например, если SCAN выполняется по всей таблице, то желательно перед его выполнение сбросить главный индекс сканируемой таблицы: select MyTab SET ORDER TO 0 SCAN ... ENDSCAN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 11:18 |
|
||
|
Что использовать вместо RELATION?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. А SELECT-SQL у меня еще медленнее работал, чем SCAN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 12:25 |
|
||
|
Что использовать вместо RELATION?
|
|||
|---|---|---|---|
|
#18+
1) В исходном варианте, когда ты связал таблицы по RELATION ты же не создавал никаких дополнительных таблиц. Отсюда и скорость отображения. Кроме того, в Grid (или BROWSE) закачиваются не сразу вся таблица, а только та часть, которая собственно отображается. Далее подкачка по необходимости 2) Можно использовать ту же связь по RELATION и для закачки информацию во временную таблицу Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Для оценки скорости, закомментируйте команду INSERT и посмотрите сколько времени уйдет на простое сканирование таблицы t1. Собственно, это и будет примерное время записи во временную таблицу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 15:02 |
|
||
|
Что использовать вместо RELATION?
|
|||
|---|---|---|---|
|
#18+
В этом варианте стало работать быстрей примерно на 1/5. А если Insert убрать, то работает быстрей примерно на столько же. Базы огромные, и информация берется не с 2 баз, а из 6, так что любое убыстрение весьма ощутимо. Спасибо, Владимир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 16:03 |
|
||
|
|

start [/forum/topic.php?fid=41&tid=1596082]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 342ms |

| 0 / 0 |
