|
|
|
Копирование информации с 1-й таблицы в другую по условию
|
|||
|---|---|---|---|
|
#18+
Приложение файл-сервер Есть таблица на сервере, порядка 100000 записей Нужно скопировать в таблицу находящуюся на клиенте. Как ускорить процесс копирование (добавление новых записей) записей с сервера на локал с условиями ? Пример кода: *klizd2=tag-->oi наход. на сервере *qspsert локал. SELECT klizd2 GO TOP DO WHILE !EOF() SCATTER FIELDS ki, oi, ni, kolmest, kolmestm, ves, vesn, upak, edizm, prsertif TO arrSpec SELECT qspsert LOCATE FOR kdse = arrSpec(1) IF !FOUND() INSERT INTO qspsert (kdse, oi_redakt, ni_redakt, kol, kolmest, ves, vesn, upak, advaldol, ed_izmeren, sertifikat, priznak_ud,; otkuda_sp); VALUES (arrSpec(1), arrSpec(2), arrSpec(3), IIF(arrSpec[4] # 0, arrSpec[4], 1),; IIF(arrSpec[5] # 0, arrSpec[5], 1), arrSpec(6), arrSpec(7), IIF(VAL(arrSpec[8]) # 0,; VAL(arrSpec[8]), 4), 3, IIF(VAL(arrSpec[9]) # 0, VAL(arrSpec[9]), 7), VAL(arrSpec[10]), 0, 4) ENDIF SELECT klizd2 SKIP ENDDO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2008, 11:20 |
|
||
|
Копирование информации с 1-й таблицы в другую по условию
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2008, 11:33 |
|
||
|
Копирование информации с 1-й таблицы в другую по условию
|
|||
|---|---|---|---|
|
#18+
Если таблица не клиенте уже есть, то можнои чрезе APPEND FROM ... FOR ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2008, 12:20 |
|
||
|
Копирование информации с 1-й таблицы в другую по условию
|
|||
|---|---|---|---|
|
#18+
... а что быстрее выполниться insert into в цикле do while или append from ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2008, 12:25 |
|
||
|
Копирование информации с 1-й таблицы в другую по условию
|
|||
|---|---|---|---|
|
#18+
Одна команда выполняется быстрее цикла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2008, 12:42 |
|
||
|
Копирование информации с 1-й таблицы в другую по условию
|
|||
|---|---|---|---|
|
#18+
строки 1 2 3 ... 100000 нужная инфа находится в диапазоне 54000-70000 перехожу на нужную строчку: select klizd if seek(переменная) do whele условие & !eof() scatt to array insert into temp select klizd skip endif или этот вариант select temp append from klizd fields for условие append from по идеи должен просмотреть все записи таблице так что быстрее ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2008, 12:53 |
|
||
|
Копирование информации с 1-й таблицы в другую по условию
|
|||
|---|---|---|---|
|
#18+
Vitalьтак что быстрее ? Если б что-то было однозначно и всегда быстрее, то все быпользовались и в языке бы остался только один этот самый быстрый вариант. Но так как вариантов таки несколько больше, то можно сделать вывод о невозможности определить однозначно самый быстрый способ. Скорость зависит от нескольких, в том числе и противоречащих друг другу условий, и как раз Ваша задача как программиста найти оптимальный вариант именно для Ваших условий, а не для сферического коня в вакууме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2008, 13:14 |
|
||
|
Копирование информации с 1-й таблицы в другую по условию
|
|||
|---|---|---|---|
|
#18+
мне кажется лучше селектом выбрать необходимые данные в курсор, а затем через APPEND FROM добавить в нужную таблицу все разом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2008, 13:16 |
|
||
|
Копирование информации с 1-й таблицы в другую по условию
|
|||
|---|---|---|---|
|
#18+
мне кажется лучше селектом выбрать необходимые данные в курсор, а затем через APPEND FROM добавить в нужную таблицу все разом и селект не нужен: APPEND FROM по условию... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2008, 15:58 |
|
||
|
Копирование информации с 1-й таблицы в другую по условию
|
|||
|---|---|---|---|
|
#18+
Выбираешь новые в курсор (желательно индекс иметь по qspsert.kdse): Код: plaintext Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2008, 16:21 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=169&tid=1588128]: |
0ms |
get settings: |
6ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
19ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 187ms |
| total: | 255ms |

| 0 / 0 |
