|
|
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
Мне из одну очень большую таблицу (t1) надо получить 3 разные таблицу Получанные таблицы по такому принципу должно упрядочоватся. Эти цифры показываеть nомер записи (recno()). 1-я таблица: 1 301 601 901 1201 2 302 602 902 1202 3 303 603 903 1203 .... 2-я таблица: 101 401 701 1001 1301 102 402 702 1002 1302 3 403 703 1003 1303 .... 3-я таблица: 201 501 801 1101 1401 202 502 802 1102 1402 203 503 803 1103 1403 ... Использую такой код(cap.prg). Но очень долго идеть обработка. Подскажите пожалуста, как можно ускорить работы этого программы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2006, 16:26 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2006, 16:36 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
На примере одной таблицы. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Остальные формируются и заполняются аналогично. Надо только менять начальное и конечное значение m.lnI в цикле BigTable - это твоя исходная таблица ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2006, 16:49 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
Да очень быстро работаеть, но результат не так как нужен У Вас (1-я таблица) 1 30 601 901 1201 1501 1801 2101 2401 2701 3001 3301 3601 4201 Надо: 1 301 601 901 1201 2 302 602 902 1202 3 303 603 903 1203 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2006, 16:50 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
fuad11Да очень быстро работаеть, но результат не так как нужен Это кому адресовано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2006, 16:55 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
Если это мне и для первой таблицы надо брать записи с номером не более 1500, то добавь это условие в WHERE Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2006, 17:00 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
Предедущий пост я адресовал к PaulWist. ВладимирМ, если добавить WHERE MOD(Recno(),300)=m.lnI AND Recno()<=1500 1-я таблица закончивается в recno()=1499. Если в исходным таблице у меня 1000000 записей, тогда как будеть осталные часть 1-й таблицы? После 1499 (299 599 899 1199 1499) таблица так должна продолжатся: 300 600 900 1200 1500 301 601 901 1201 1501 ..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 07:40 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
Ну ты тестовый код запускал? Где там 1-30, там сразу 1-301. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 09:14 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
PaulWist, я не понял Вас. Где у Вас 1-30: CREATE CURSOR test (ID i) FOR i = 1 TO 1000 INSERT INTO test (id) VALUES (i) endfor SELECT * FROM test WHERE MOD(id - 1,300) = 0 SELECT * FROM test WHERE MOD(id - 2,300) = 0 SELECT * FROM test WHERE MOD(id - 3,300) = 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 09:41 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
Ты бы сначала задачу четко сформулировал, тогда бы и сам может ускорил бы. Как я понимаю из исходных данных: 1. сортировать сначала по младшей цифре номера записи, а затем по всем остальным 2. выбирать записи у которых младшая цифра не равна нулю и старшие с шагом 30 начиная с 0, 10 и 20 соответственно. Поправь если я не так понял. select Recno() as Row, mod(Recno(), 10) as Low, int(Recno() / 10) as High, ... from bsname order by 2, 3 having Low != 0 and mod(High, 30) = 0 select Recno() as Row, mod(Recno(), 10) as Low, int(Recno() / 10) as High, ... from bsname order by 2, 3 having Low != 0 and mod(High, 30) = 10 select Recno() as Row, mod(Recno(), 10) as Low, int(Recno() / 10) as High, ... from bsname order by 2, 3 having Low != 0 and mod(High, 30) = 20 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 09:51 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
Мне из одну очень большую таблицу надо получить 3 разные таблицу В 1-м таблице : 1-я 5 запис должна начинать с 1 (шаг=300) 1 301 601 901 1201 2-я 5 запис должна начинать с 2 (шаг=300) 2 302 602 902 1202 3-я 5 запис должна начинать с 2 (шаг=300) 3 303 603 903 1203 ..... 2-я таблица : 1-я 5 запис должна начинать с 101 (шаг=300) 101 401 701 1001 1301 2-я 5 запис должна начинать с 102 (шаг=300) 102 402 702 1002 1302 3-я 5 запис должна начинать с 103 (шаг=300) 103 403 703 1003 1303 ..... 3-я таблица: 1-я 5 запис должна начинать с 201 (шаг=300) 201 501 801 1101 1401 ..... ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 10:08 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
Шаг 300 для всего номера строки или 30 для старших цифр. Запускать то пробовал ? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 10:17 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
Шаг 300 для каждый 5 записей , 1 301 601 901 1201 Это 1-й 5 запис. 2-я 5-ка: 2 302 602 902 1202 Тоесть , для 2-й 5-ку шаг тоже 300, но должно начинать с 2. 3-я 5-ка должно начинать с 3, шаг тоже 300 и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 10:32 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
А по моему запросу что получилось? Разве не так? А если тебе только по 5 первых записей надо. то Код: plaintext 1. 1 301 601 901 1201 2 302 602 902 1202 3 303 603 903 1203 4 304 604 904 1204 5 305 605 905 1205 6 306 606 906 1206 7 307 607 907 1207 8 308 608 908 1208 9 309 609 909 1209 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 10:48 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
Мог бы и сам догадаться, что делать дальше. Если у тебя на каждом шаге ВСЕГДА отбирается только 5 записей, то и ставь соответствующее условие SELECT TOP 5 Однако по твоему описанию, итоговая таблица будет содержать дубли. Ведь значение 301 будет взято на первом шаге и потом будет повторено, когда перейдем рубеж в 300 итераций. Но если очень надо, то делай вложенные циклы Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Правда, здесь предполагается, что количество записей в основной таблице кратно 300. Т.е. если в ней, например, всего 400 записей, то по 5 записей с шагом 300 никак не получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 10:59 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
DimaT, то что надо если добавить .and High < 150 Только здесь как Вы показали в 1-м таблице получается только 45 записей Последная 5-ка: 9 309 609 909 1209. А остольные как выбрать , вот это незнаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 11:11 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
fuad11А остольные как выбрать , вот это незнаю. Какие остальные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 11:34 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
Нет, повтора не должна быть. Вот мой код каторый я использую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 11:44 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
DimaT, последная 5-ка: 9 309 609 909 1209. После это 5-ку таблица так должна продолжатся: 10 310 610 910 1210 11 311 611 911 1211 и т.д. А остольные как выбрать , вот это незнаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 11:49 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
fuad11Нет, повтора не должна быть. Вот мой код каторый я использую Какая повтора? Где повтора? Повтора полей исходной таблицы? Допиши имена полей в ", ... from" вместо "..." через запятую. Запускай word и делай проверку синтаксиса своих постов перед их отправкой. А то мы с тобой на разных русских языках говорим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 12:12 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
fuad11... После это 5-ку таблица так должна продолжатся: 10 310 610 910 1210 ... Если в конечной выборке должны быть все записи кроме 300, 600, 900, 1200 то: Код: plaintext Очень интересно для чего такая выборка нужна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 12:51 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
Dima T, насчет повтора я не к Вам, это я Владимиру хотел сказать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 12:53 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
Это для отчета нужен . Исходная таблица 1 и большая. 1 2 3 … 301 302 …. … 1000000 Просто я потом из 3 таблицу буду получать 1 таблица (для отчета) Конечня таблица (или отчет) так должна выглядить: 1 101 201 301 401 501 601 701 801 901 1001 1101 1201 1301 1401 2 102 202 302 402 502 602 702 802 902 1002 1102 1202 1302 1402 ………………………………. ………………………………. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 13:12 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
select Recno() as Row, mod(Recno(), 10) as Low, int(Recno() / 10) as High from t1 order by 2, 3 having Low != 0 and mod(High, 30) = 0 and High < 150 В этом коде как можно продолжит программы, чтобы остальные нужные записи тоже можно было получить? 10 310 910 610 1210 ….. Очень срочно нужен помогите, пожалуйста, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 15:47 |
|
||
|
как можно ускорить работы программы?
|
|||
|---|---|---|---|
|
#18+
Вот создал такой код: ********************** use ta zap for i=0 to 100 select Recno() as Row, mod(Recno(), 10) as Low, int(Recno() / 10) as High from t1 order by 2, 3 having Low != 0 and mod(High, 30) = i and High < 150; into table ta1 clos data use ta appe from ta1 endf ********************** *t1- исходная таблица. 1. Считает больше записи, НО , не получается считать 5-ку , начинающим такие цифрами как 10,20,30,40,..... 2.Здесь считается и 5-ку , начинающи такие цифрами как 101,401,701,1001,1301,..... 201,501,801,1101,1401,…. Эти записи должно участвовать 2-м и 3-м таблице Как можно решать и эти проблемы? Дело в том что, мой 1-код (cap.prg) все правильно считает (все 3 таблицы), олько очень долго работаеть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 09:08 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=253&tid=1591513]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
77ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
81ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 455ms |

| 0 / 0 |
