Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
11.05.2005, 16:05
|
|||
|---|---|---|---|
как можно ускорить такую функцию? |
|||
|
#18+
подскажите pls как можно переписать такую функцию - очень медленно работает (функция для получения всех "родителей" объекта в иерархии) create table hierarchy (child int, parent int, part int); CREATE OR REPLACE FUNCTION get_all_parents(v_child int) RETURNS SETOF HIERARCHY AS' DECLARE v_rowsadded INTEGER; v_rec record; BEGIN execute ''create temp table tab_curr (ID int, PART int, FLAG int DEFAULT 0) ON COMMIT DROP;''; execute ''insert into tab_curr select PARENT, PART, 0 from HIERARCHY where CHILD='' || v_child; GET DIAGNOSTICS v_rowsadded = ROW_COUNT; WHILE v_rowsadded > 0 LOOP execute ''update tab_curr set FLAG = 1 where FLAG = 0''; execute ''insert into tab_curr select h.PARENT, h.PART, 0 from HIERARCHY h, tab_curr tmp where h.CHILD=tmp.ID and tmp.FLAG = 1 and h.PART=tmp.PART''; GET DIAGNOSTICS v_rowsadded = ROW_COUNT; execute ''update tab_curr set FLAG = 2 where FLAG = 1''; END LOOP; FOR v_rec IN execute ''SELECT distinct ID, '' || v_part || '', PART FROM tab_curr'' LOOP RETURN NEXT v_rec; END LOOP; execute ''drop table tab_curr''; RETURN; END; ' language 'plpgsql'; заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2005, 16:22
|
|||
|---|---|---|---|
как можно ускорить такую функцию? |
|||
|
#18+
А если вот так? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2005, 16:27
|
|||
|---|---|---|---|
как можно ускорить такую функцию? |
|||
|
#18+
так не получится, т.к. child имеет много parent, т.е. при select * from hierarchy where child = _temp; получишь много записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.05.2005, 16:44
|
|||
|---|---|---|---|
как можно ускорить такую функцию? |
|||
|
#18+
Дубль 2 :) : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&tablet=1&tid=2007267]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 393ms |

| 0 / 0 |
